2012-05-03 76 views
1

我是新來的java和有一個奇怪的問題。 我在WEB-INF文件夾中創建了一些文件夾(theme,js,css),並將我的文件放到了這個文件夾中。 在index.jsp中我使用一個CSS文件通過下列方式:我怎樣才能訪問我的文件,放在WEB-INF文件夾中

<style type="text/css"> 
     <%@include file="WEB-INF/css/style.css" %> 
</style> 

它的作品好。 但在style.css的文件我有遵循的方式設置標題標籤的背景div標籤:

#header{ 
background: url(../theme/violet/header.jpg) repeat-x; 
} 

哦。我的問題在這裏。它不起作用。因爲其他的css命令工作得很好。 我知道WEB-INF細節不可訪問,但是可能有一種方法,就像我在index.jsp頁面中使用鏈接style.css的方式。

任何解決方案? 謝謝。

+0

只需在WEB-INF css文件夾中添加像這樣的文件夾添加圖像文件夾,並把那個header.jpg放在那裏。您的圖像將可用於style.css - 背景路徑:url(images/header.jpg)repeat-x;順便說一句這個圖像將提供給大家之外(如果網址你精確的確切路徑),CSS,但整個文件夾的圖像或不會,因爲它是由服務器或應用程序容器(如Tomcat)保護 - 你可以改變它的配置文件內(/ conf目錄/web.xml)。 context.xml中的T​​omcat監視的資源也很有價值 – blueberry0xff

回答

2

從包含style.css的方式來看,我猜你的index.jsp位於WEB-INF文件夾之外,可以通過客戶端瀏覽器直接訪問它。包含的style.css工作正常的原因是因爲它包含在服務器端。但是在style.css中,爲了獲取背景圖像,瀏覽器將啓動一個新的連接到圖像,這恰好在WEB-INF文件夾內,服務器拒絕發送它,並且你註定要失敗。

如果你有一個集中的控制器servlet,你可以把你的jsps放在WEB-INF文件夾中,以防止它直接被訪問。您的servlet將根據請求參數將所有請求重定向到適當的jsp。

據我所知,沒有絕對的理由把圖像,JavaScript等這個文件夾裏面,你肯定會遇到問題時,瀏覽器需要訪問這個文件夾來獲取數據。

1

這是不可能的。如果你想要從瀏覽器直接訪問內容,它不能駐留在WEB-INF內。

+0

答案的含義是什麼。你會說我最讓我的資源文件在WEB-INF之外?因此,我的jsp文件如何訪問css文件,但css文件無法訪問映像文件?是你的答案,通過網絡瀏覽器的CSS文件處理meaninig? – rasoul

+0

如果你想有一個資源(如header.jpg)是由客戶端,如瀏覽器不能在一本書我讀了他的網站上提供結構位於WEB-INF –

0

爲什麼在WEB-INF文件夾中創建theme, js, cssWEB-INF目錄包含有關應用程序的元數據。在正常操作期間,您不需要在WEB-INF目錄下修改任何內容。

可以warWebContent目錄下創建文件夾theme, js, css直接就容易在JSP頁面中使用。

this鏈接將幫助你。

+0

內部觸及。作者說,把你的CSS,主題,js和tld放入WEB-INF是很好的。當然,他說WEB-INF中的所有數據都是用戶無法訪問的,但是web服務器允許你的類使用它(可能他會說我們的類可以使用它,而不是所有源這樣的jsp文件,我不知道)。 – rasoul

相關問題