在appengine中,index.html是作为静态文件提供还是首先涉及到一个servlet容器?
例如,假设我有blabla.com主机,war / index.html,用户转到http:/blbla.com/
我不希望首先命中servlet容器,以确定它是web.xml中配置的welocme-file-list的一部分,然后appengine才会将其作为静态文件提供。避免服务器往返的唯一方法是让用户点击网址http://blabla.com/index.html吗?
根据文档https://developers.google.com/appengine/docs/java/gettingstarted/staticfiles说:
By default, App Engine makes all files in the WAR available as static files except JSPs and files in WEB-INF/. Any request for a URL whose path matches a static file serves the file directly to the browser—even if the path also matches a servlet or filter mapping.
现在问题是:如果我在welcome-file-list中指定了“index.html”并且用户点击了http://blabla.com
如果是2:将html文件用作静态文件的唯一方法是让用户直接在url中搜索它们,即http://blabla.com/index.html? 这是非常重要的时刻,因为这意味着您的servlet容器可能会在每个请求时间执行解析welcome-files-list的额外工作,从而导致浪费的cpu,如果用户指定了html文件的直接路径,则可以避免这种情况。
答案 0 :(得分:0)
默认情况下,App Engine使WAR中的所有文件都可用作静态文件,但WEB-INF /中的JSP和文件除外。对路径与静态文件匹配的URL的任何请求都将文件直接提供给浏览器 - 即使路径也与servlet或过滤器映射匹配。您可以使用appengine-web.xml文件配置App Engine将哪些文件视为静态文件。
但你不能将url设置为静态文件“/".
请参阅documentation。