2011-09-17 120 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

相關問題