在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/imagessource/main/webapp/static/

然后,在HTML中,您使用放在webapp位下面的任何路径来引用图像。

一般的答案是 – 您的Web应用程序的根目录是webapp。 动态资源(如JSP页面或Freemarker模板)最好放在web-inf /子文件夹中(它们可以通过类加载器访问,但不能通过直接浏览器请求访问)。