我有一些JavaScript文件,一個主要的HTML文件,一個主要的CSS文件以及一些導入到主文件中的CSS文件。我在哪裏爲GWT應用程序添加靜態文件?戰爭文件夾或公共文件夾?
我明白我可以把靜態文件放在兩個地方:a)'war'文件夾;或者b)「公共」文件夾。
哪裏是放置我的靜態文件的最佳位置?這兩個地點的處理方式不同嗎?在這個問題上是否存在「最佳實踐」?
我有一些JavaScript文件,一個主要的HTML文件,一個主要的CSS文件以及一些導入到主文件中的CSS文件。我在哪裏爲GWT應用程序添加靜態文件?戰爭文件夾或公共文件夾?
我明白我可以把靜態文件放在兩個地方:a)'war'文件夾;或者b)「公共」文件夾。
哪裏是放置我的靜態文件的最佳位置?這兩個地點的處理方式不同嗎?在這個問題上是否存在「最佳實踐」?
2個位置之間的區別在於公共文件夾中的文件被gwt編譯器複製到'war'文件夾中的'your module'文件夾中。這意味着如果你部署'戰爭'(例如通過谷歌插件谷歌appengine)'公共'文件夾中的文件不在頂層。例如,如果您在'public'文件夾中使用名爲'mymodule'的gwt模塊創建了index.html,並將其部署到www.example.com,它看起來如下所示,您需要通過以下方式訪問它:
www.example.com/mymodule/index.html
如果你在 '戰爭' 文件夾中的index.html,您可以:
www.example.com/index.html
彙總。您的着陸頁應該位於「戰爭」文件夾中。目標網頁使用的資源文件也可以存儲在此處(CSS,圖像)。在任何gwt模塊文件(或代碼,如圖像)中引用的任何其他資源文件都應存儲在與gwt模塊相關的'public'文件夾中。
在GWT中工作的新方法是使用war文件夾。
但是,如果您的項目是在GWT應用程序中使用的可重複使用的小部件庫,那麼您應該將資源放在公用文件夾中。編譯器將確保文件自動包含在生成的包中。
你怎麼把CSS在戰爭中的文件夾,然後在xxx.gwt.xml文件中引用呢?我的問題是,我相對URL可以在將來改變,我也不想改變任何事情保持它在公衆GWT文件夾可以保證 – AlfaTeK 2011-05-11 22:32:37
也http://www.gwtproject.org/doc/latest/DevGuideOrganizingProjects看到。html#DevGuideDirectoriesPackageConventions(指導方針6.) – 2014-03-25 09:17:03
但是,當將任何東西放入'war'文件夾時,它將在重新編譯項目時被刪除。應該在哪裏放置靜態資源? – 2014-03-25 10:07:00
在我看來,這取決於你的要求,但讓我們開始在講例如第一...
我找到documentation(應該是GWT 2.6.0)這個是不正確的,或者至少殘缺/混亂。當我看到它(我不是大師,所以請糾正我,如果我的調查是錯的!)我在看下面的例如凸出結構
myproj/
src/my/gwtproj/
client/
img/
foo1.png
AppClientBundle.java
foo2.png
public/
img/
foo3.png
foo4.png
war/
img/foo5.png
foo6.png
.classpath
.project
假設我們可以(或者可以不)需要在一些AppClientBundle
接口(或其他應用參考上下文)來引用這些資源:
interfaces AppClientBundle extends ClientBundle {
@Source("img/foo1.png")
ImageResource fooImg();
}
然後好像取決於您的需求,如:
@Source
註釋AppClientBundle
界面這些資源是由夾,例如分組foo2.png
與img/foo1.png
http://host1/gwtapp1/foo4.png
與http://host1/gwtapp2/foo4.png
http://host1/gwtapp1/foo4.png
與http://host1/foo6.png
這裏是一個可以做(可能性),它的意義就R. *以上:
my.gwtproj.client
(這裏例如下3210)
public
文件夾(在我的情況my.gwtproj.public
)@Source("img/foo1.png")...
工作在文檔精細public
是一個保留的Java關鍵字,而是通過Navigator
視圖中創建它的工作原理)
@Source
不工作(可能是因爲它與相對AppClientBundle
文件中的問題系統位置)public
文件夾做myproj/war
之下,例如projdir/war/foo6.png
@Source
http://host1/foo6.png
myproj/war
,例如projdir/war/img/foo5.png
@Source("img/foo5.png")
不會工作了非常廣泛的分析,但它確實應該是一個新問題。在這種情況下,你應該更好地構建你的問題,否則它可能會被標記爲「不清楚要問什麼」。 – 2014-03-25 16:06:27
看着原來的問題,標題,谷歌排名和有相同的問題等。我發現我的答案比擬合,並沒有看到,爲什麼我們應該創建另一個重複的問題。如果我在某些方面可能有錯,但如果指出,我會很慶幸地在這裏糾正它。 – 2014-03-26 09:58:52
這很有幫助,謝謝,我還沒有聽說過[ClientBundle](http://www.gwtproject.org/doc/latest/DevGuideClientBundle.html)。我創建了一個簡單的[示例項目](https://github.com/donkirkby/webandnative/blob/assets/html/src/com/github/donkirkby/webandnative/client/WebAndNativeEntryPoint.java#L22)來展示如何設置建立資產文件並將其包含在一個包中。 – 2014-12-16 07:32:56
這個答案仍然適用於GWT 2.6嗎?我的項目似乎沒有「公共」文件夾。另一方面,如果我將任何內容添加到'war'文件夾,只要我重新編譯項目就會被刪除。那麼,現在應該在哪裏放置靜態文件? – 2014-03-25 10:06:08