example documentation表示您只需將文件置於war /(或子目錄)中,並且應該可以從主機訪問它們(只要它們不是JSP或在WEB-INF中)。例如,如果您將foo.css置於war中,那麼您應該可以在http://localhost:8080/foo.css上訪問它。但是,這根本不適合我。沒有我的靜態文件可以訪問。(Java)App Engine中的靜態文件無法訪問
appengine-web.xml上的文檔說,您還可以特定地將某些類型表示爲靜態。我也嘗試過這一點,它沒有任何區別。
我錯過了一些明顯的東西嗎?
更新: 原來我的web.xml中的一個映射有點太過分了。以下是罪魁禍首:
<servlet>
<servlet-name>Main</servlet-name>
<servlet-class>MainServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Main</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
它似乎抓住了,這不是被抓住的其他規則之一的一切,我不理解,因爲有在URL-的末尾沒有*模式。這也似乎是直接矛盾the documentation,上面寫着:
注:靜態文件,它們逐字提供給用戶,如圖片,CSS或JavaScript文件,分別從部署描述符中提及的路徑處理。無論在部署描述符中使用何種servlet和過濾器映射,對WAR路徑中與被指定爲靜態文件的文件路徑匹配的URL路徑請求都將爲該文件提供服務。您可以使用appengine-web.xml文件將那些被視爲靜態文件的文件排除在外。
那麼,我怎麼能有一個規則匹配我的域的基礎(例如http://www.example.com/),仍然允許靜態文件過濾?
做附帶SDK工作的樣本?如何啓動應用程序。我想你已經檢查過這些文件真的在戰爭中/ – jitter 2009-06-22 16:06:48
是的,留言簿應用程序讓我打它的CSS文件就好了。 – 2009-06-22 20:09:24