在jetty项目中存储静态文件如html / css / javascript的位置?

时间:2012-02-02 04:24:11

标签: java maven jetty

我有一个使用jetty运行的maven项目:

$ mvn run:jetty

我的项目应该在哪里存储我的静态文件,如HTML,CSS,Javascript,图像?

我的布局使用简单的网络应用程序拱型:

/src/main/java/webapp/web-inf/views/

我应该只创建一个名为eg的文件夹吗? '资产'?

然后我的视图页面会以某种方式引用/assets文件夹?我很困惑我将在html页面中使用哪条路径来引用像这样的图像:

/assets/images/logo.png

3 个答案:

答案 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/imagessource/main/webapp/static/也一样。

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

答案 2 :(得分:0)

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