在jetty项目中存储静态文件如html / css / javascript的位置?
我有一个使用jetty运行的maven项目:
$ mvn run:jetty
在我的项目中,我应该存储HTML,CSS,Javascript,图像等静态文件?
我的布局使用简单的Web应用程序拱门类型:
/src/main/java/webapp/web-inf/views/
我应该创建一个名为’assets’的文件夹吗?
然后我的视图页面将以某种方式引用/assets
文件夹? 我很困惑我将在我的html页面中使用哪条路径来引用如下图像:
/assets/images/logo.png
这不是一个Jetty问题,因为它是一个普通的Java webapp问题。 如果您计划直接提供它们(如* .css,* .css,图像等),请将它们放在WEB-INF
之上但在docroot之下。 Java WebApps是以下所有基本目录结构。
+WEB-INF/ +lib/ +classes/
任何内容都可以直接通过http直接访问。 WEB-INF
及以下的任何内容都不是。 一个非常简单的webapp有一个页面(index.jsp),一个images目录中的图像,以及它的配置文件(web.xml)看起来像这样。
index.jsp https://stackoverflow.com/questions/9107152/where-to-store-static-files-like-html-css-javascript-in-a-jetty-project/images/bob.jpg WEB-INF/ web.xml lib/ classes/
在index.jsp中你可以像bob.jpg一样引用…
这实际上是一个Maven问题而不是Jetty问题。
通常你会把你的图像(等)放在maven webapp
目录中 – 即 source/main/webapp/
(不在web-inf
)
你如何构建下面的东西取决于你,但它主要取决于你期望放入多少内容,以及你认为最好组织它的方式。
source/main/webapp/assets/images
很好,但source/main/webapp/images
或source/main/webapp/static/
。
然后,在HTML中,您使用放在webapp
位下面的任何路径来引用图像。
一般的答案是 – 您的Web应用程序的根目录是webapp。 动态资源(如JSP页面或Freemarker模板)最好放在web-inf /子文件夹中(它们可以通过类加载器访问,但不能通过直接浏览器请求访问)。