我有一些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