在 appengine 中,index.html 是作为静态文件还是首先涉及到 servlet 容器?例如,假设我有 blabla.com 主机,war/index.html 并且用户访问 http://blbla.com/
我不希望首先命中 servlet 容器以确定它是 welocme 的一部分-file-list 在 web.xml 中配置,只有这样 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.
所以现在的问题:如果我在欢迎文件列表中指定了“index.html”,以下哪项是正确的用户点击http://blabla.com
- appengine 知道它必须将 index.html 直接作为静态文件提供服务,并且我的 servlet 容器不需要检查欢迎文件列表。
- appengine 不知道它必须从静态文件中提供 index.html 并且我的 servlet 容器被命中只是为了检查 welcome-files-list 然后允许 appengine 将其作为静态文件获取。
如果是 2:将 html 文件用作静态文件的唯一方法是让用户直接在 url 中点击它们,即http://blabla.com/index.html?这是非常重要的时刻,因为这意味着您的 servlet 容器可能会在每个请求时间执行额外的工作来解析欢迎文件列表,这会导致浪费 cpu,如果用户指定了 html 文件的直接路径,则可以避免这种情况。