(Java) App Engine 中的静态文件不可访问
示例文档说,您只需要将文件放在war/(或子目录)中,并且它们应该可以从主机访问(只要它们不是JSP或WEB-INF)。例如,如果您将foo.css置于战争/中,那么您应该能够在 http://localhost:8080/foo.css 访问它。但是,这对我根本不起作用。我的静态文件都不可访问。
appengine-web上的文档.xml说你也可以专门将某些类型表示为静态。我也尝试过这个,它没有区别。
我是否错过了一些明显的东西?
更新:事实证明,我网络上的一个映射.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模式的末尾没有*。它似乎也与文档直接矛盾,该文档说:
注意:静态文件(逐字提供给用户的文件,如图像、CSS 或 JavaScript)与部署描述符中提到的路径分开处理。对 URL 路径的请求与 WAR 中被视为静态文件的文件的路径匹配,则无论部署描述符中的 servlet 和筛选器映射如何,都将为该文件提供服务。您可以使用 appengine-web.xml文件从被视为静态文件的文件中排除文件。
那么,我怎么能有一个与我的域的基础相匹配的规则(例如。http://www.example.com/)并且仍然允许静态文件过滤?