我有一个使用jetty运行的maven项目:
$ mvn run:jetty
我的项目应该在哪里存储我的静态文件,如HTML,CSS,Javascript,图像?
我的布局使用简单的网络应用程序拱型:
/src/main/java/webapp/web-inf/views/
我应该只创建一个名为eg的文件夹吗? '资产'?
然后我的视图页面会以某种方式引用/assets
文件夹?我很困惑我将在html页面中使用哪条路径来引用像这样的图像:
/assets/images/logo.png
答案 0 :(得分:17)
这不是一个Jetty问题,因为它是一般的Java webapp问题。如果您打算直接提供服务(例如* .css,* .css,图片等),请将它们放在WEB-INF
之上,但低于您的docroot。 Java WebApps是以下所有基本目录结构。
<docroot>
+WEB-INF/
+lib/
+classes/
<docroot>
中的任何内容都可以直接通过http直接访问。 WEB-INF
及以下的任何内容都不是。一个非常简单的webapp有一个页面(index.jsp),一个images目录中的图像,以及它的配置文件(web.xml)看起来像这样。
index.jsp
images/bob.jpg
WEB-INF/
web.xml
lib/
classes/
在index.jsp中你可以像bob.jpg一样引用...
<img src="images/bob.jpg"/>
答案 1 :(得分:6)
这实际上是一个Maven问题,而不是Jetty问题。
通常你会把你的图像(等)放在maven webapp
目录中 - 即 source/main/webapp/
(不在web-inf
下)
你如何构建由你自己构建的东西,但它主要取决于你期望放入多少内容,以及你认为最好组织它的方式。
source/main/webapp/assets/images
没问题,但source/main/webapp/images
或source/main/webapp/static/
也一样。
然后,在HTML中,您使用放在webapp
位下面的任何路径来引用图像。
答案 2 :(得分:0)
一般答案是 - 您的Web应用程序的根目录是webapp。动态资源(如JSP页面或Freemarker模板)最好放在web-inf /子文件夹中(它们可以通过类加载器访问,但不能通过直接浏览器请求访问)。