2014-01-14 83 views
4

在大型Web應用程序中,我使用requirejs和amd模塊,以便腳本本身是模塊化和可維護的。我有以下目錄結構在戰爭中打包requirejs優化文件

web 
|-src 
    |-main 
     |-java 
     |-resources 
     |-webapp 
      |-static 
      |-scripts 
      |-styles 
      |-images 
      |-static-built //output from r.js. not checked into git 
      |-WEB-INF 

在構建js和css使用r.js爲靜態建文件夾進行了優化。 Gradle是構建工具。

現在的問題:jsps引用靜態/腳本文件夾中的腳本,這就是我在本地工作時想要的。然而,在構建戰爭時,我想要從靜態構建的文件夾提供靜態文件。重要的是源jsp不應該改變爲從靜態構建的文件夾提供優化的文件。

我擁有的兩個選項是:a)製作戰爭時的gradle build應該包含static-built而不是static。 b)除靜態外還包含靜態構建,並使用tuckey urlrewrite從靜態構建而不是靜態構建資源。

社區在類似場景中採用了哪些最佳做法?

回答

1

我們已經設置了服務器以從系統屬性中讀取運行時配置文件(dev,qa,prod等),該系統屬性基於此屬性確定一些設置。在生產配置文件中運行時,我們會從WAR中提供優化的文件。在開發中,我們直接從應用程序上下文以外的文件系統提供非縮小和非連接文件。

文件根據官方multipage example構建。

配置服務文件取決於您選擇的後端解決方案。以下是spring的示例。

或者,r.js可以generate source maps,這些也有助於開發。

0

不知道這個問題已經過時了,但我有一種類似的問題。

我有類似的項目結構,但唯一的區別 - 我已經拆分項目分成兩個模塊:

  • 其中之一(我們稱之爲服務)是爲後臺的Java模塊結束
  • 第二個只包含js和其他有關前端的東西(我們稱之爲UI)。

然後在搖籃打造「組裝」的服務取決於UI的「組裝」的任務,另一個自定義任務的任務稱爲「預組裝」。這'預裝'任務是複製優化的js文件到我希望他們成爲的地方。

所以,基本上,我剛剛添加了另一個負責將所有優化的js文件放在適當位置的任務。