2017-07-06 76 views
1

我在當前正在處理的lib包中有一些文件。它需要被多個項目使用,所以我不能將這些文件直接放在我的Web服務器中。從Struts2.5 Web服務器訪問外部項目的靜態網頁資源

我希望我的Struts2.5 Web服務器能夠從我的Lib包中提供一些靜態文件。我正在研究使用web-fragment.xml解決方案,但是從what I gather from oracle,這隻有在我編譯我的庫包並將其放入我的META-INF目錄中時纔會起作用。這很好,但對於任何開發或測試都非常不方便,因爲每次我對html/js進行更改時,都需要進行新構建並將其複製到那裏。這聽起來像是我錯誤的解決方案。

如果有一種方法可以使用xml配置來完成這項工作,那麼從我讀過的內容中就不能說清楚了。如果我能指出正確的方向,那會很有幫助。

否則,如果有辦法在Eclipse中以某種方式做到這一點也是可以接受的。爲了記錄,這個項目被eclipse中的其他項目引用爲我的Java Build Path中的必需項目。

回答

1

將靜態文件放在Web內容根目錄下(/)。如果你想讓Struts服務你的靜態內容,那麼把它放在/static之下。 Struts也可以從類路徑中提供靜態內容,但它似乎不適合你。

閱讀我的回答對Load image in jsp from different URL but same domain

您可以Static Content閱讀更多關於靜態內容加載程序和配置設置的文檔。


如果您打包並在另一個.war文件部署靜態文件,並指定由您的應用程序訪問這些文件的上下文路徑可以重新使用從其他Web應用程序相同的靜態文件。它可以來自同一個域或不同的域。

當Web檔案爆炸時,您可以使用靜態文件部署Web應用程序,因此無需在每次部署應用程序時打包它們,並且如果它是不同的應用程序,則無需重新部署其他應用程序,除非它們受到文件訪問路徑的影響。

另一種方法是在Eclipse中與其他項目共享帶有靜態內容的項目,因爲Eclipse在構建過程中將項目文件複製到最終的.war,並且每個Web應用程序都將擁有自己的共享文件副本。如果你想修改一些共享文件,那麼你只需要重建/重新部署你正在使用的項目。其他將此項目作爲依賴關係的項目可以根據需要進行重建/重新部署。這似乎是最可靠的解決方案,因爲修改某些Web應用程序不會影響運行的其他Web應用程序

+0

非常感謝,第二種方法聽起來像我想採取的路線。根據這些建議,我會看看我能否得到任何工作。 –