2011-09-17 119 views
1

我的项目中有以下文件夹结构。HTTP错误404与码头服务器

> src/ 
>>main/ 
>>>webapp/ 
>>>>WEB_INF/ 
>>>>>pages/ 
>>>>>>js/ 

我的所有脚本文件都位于JS文件夹,我的jsp页面位于页面folder.In以包括在我的jsp页面abc.js剧本我写了下面的行

<script type="text/javascript" src="/WEB-INF/pages/js/abc.js"></script> 

但我得到以下错误

"NetworkError: 404 Not Found - http://localhost:8080/WEB-INF/pages/js/abc.js" 

我正在使用jetty服务器来部署我的项目。对于运行它,我使用

mvn jetty:run 

如果我直接把我的脚本文件在WebApp文件夹,并包括以下方式则可以正常使用好的电影剧本。

<script type="text/javascript" src="abc.js"></script> 

但我想将所有脚本文件夹的js保持我的项目的文件夹结构。 有人可以告诉我为什么码头服务器只采取位于webapp文件夹中的文件? 我正在使用windows7

回答

1

您的src不正确。 Java Servlet规范明确指出,WEB-INF目录下的任何文档都将可用于网络服务器。你需要把你的JavaScript文件放在它之外。

通常,您将jsp文件放在其中,因为它们不能直接访问。他们可以通过Servlet或任何其他Java开发框架访问。

如果你想保持你的文件夹结构,只是把你JS在网页存档根文件夹:

webapp/ 
    js 
    WEB-INF/ 
     classes/ 
     lib/ 
     pages/ 
     web-xml 

WEB-INF目录的设计正好防止用户可以访问他们不应该访问的文件如classes,lib目录或web.xml部署描述符。

+0

那么,这些家伙不存在,或者有什么你失踪? http://restlet-discuss.1400322.n2.nabble.com/Serving-Directory-under-WEB-INF-td3890646.html – sillyMunky

+0

你可以用你的方式进入'WEB-INF'目录。但是你**不能通过浏览器直接访问,正如OP所期望的那样。看看你的网址。黑客是在一个Servlet或类似的不同的Web框架。不在HTML/JS代码中。 –

+0

这很好,很好的信息。我认为,因为他的结构就像他以前一样工作,只是想知道为什么特定的脚本src不工作。无论哪种方式,重新结构更好,所以你的答案是好的。虽然它可以比绝对地说得更准确。 – sillyMunky

相关问题