我在哪里为GWT应用程序放置静态文件?war文件夹或公用文件夹?

Dav*_*vid 15 gwt web-applications directory-structure

我有一些JavaScript文件,一个主HTML文件,一个主CSS文件,以及一些导入到主文件中的CSS文件.

我知道我可以将静态文件放在两个地方:a)'war'文件夹; 或b)'public'文件夹.

放置静态文件的最佳位置在哪里?这两个地点的处理方式不同吗?在这个问题上有"最佳实践"吗?

Hil*_*amp 18

两个位置之间的区别在于公共文件夹中的文件由gwt编译器复制到"war"文件夹中的"your module"文件夹.这意味着如果您部署'war'(例如通过google插件到google appengine),'public'文件夹中的文件不在顶层.

例如,如果你在'public'文件夹中有一个名为'mymodule'的gwt模块的index.html,你将它部署到www.example.com,它看起来如下,你需要通过以下方式访问它:

www.example.com/mymodule/index.html
Run Code Online (Sandbox Code Playgroud)

如果你在'war'文件夹中有index.html,你会得到:

www.example.com/index.html
Run Code Online (Sandbox Code Playgroud)

总结.您的目标网页应位于"war"文件夹中.着陆页使用的资源文件也可以存储在此处(css,images).任何gwt模块文件(或代码,如图像)中引用的任何其他资源文件都应存储在与gwt模块相关的"public"文件夹中.

  • 对于GWT 2.6,这个答案是否仍然适用?我的项目似乎没有`public`文件夹.另一方面,如果我向`war`文件夹添加任何内容,则在我重新编译项目时它会被删除.那么,现在应该放置静态文件的位置? (2认同)

Dav*_*uls 6

在GWT中工作的新方法是使用war文件夹.

但是,如果您的项目是在GWT应用程序中使用的可重用小部件库,那么您应该将资源放在公用文件夹中.编译器将确保文件自动包含在生成的包中.

  • 如何将css放在war文件夹中,然后在xxx.gwt.xml文件中引用它?我的问题是我的相对网址将来可以改变,我不想改变保存在公共gwt文件夹保证的任何东西 (2认同)