0

Google App Engine appengine-web.xml 配置文件允许您指定哪些文件是静态内容,哪些文件是资源。当您将应用程序上传到 Google 时,只有指定为静态的内容才会放置在静态内容服务器上,并且只有指定为资源的文件才会被推送到应用程序服务器(解释自https://developers.google.com/appengine/docs/ java/config/appconfig)。

我有一些配置语句看起来像......

  <static-files>
    <include path="/**.html" />
    <include path="/**.js" />
    <include path="/**.css" />
    <include path="/**.ico" />
    <include path="/**.png" />
    <include path="/**.jpg" />
    <include path="/**.gif" />
  </static-files>

  <resource-files>
    <include path="/**.ftl" />
  </resource-files>

我的问题是...

当我将文件添加到静态文件列表时,这是否意味着它们也不会作为资源文件发送?

当我将文件添加到资源文件列表时,这是否意味着它们也不会作为静态文件发送?

还是我需要在每个部分中提供完整的排除路径集?

文档在这里模棱两可(至少我没有看到任何明确的内容)。由于这只是节省空间的优化(我猜还有一些上传时间),所以它对我来说可能还不太重要。但我似乎没有任何方法可以判断内容在推送到 Google 时是否进入静态或资源区域。

谢谢!

4

1 回答 1

4

几点:

  1. 静态文件的重点是它们直接提供给最终用户。它们不是由 GAE 服务器提供服务,而是由专门的(内部)Google CDN 服务器提供服务。这提高了加载时间。对于静态文件,您还可以声明“缓存控制”标头,甚至进一步缩短加载时间(因为客户端缓存和下游缓存会缓存它)。

  2. 资源文件旨在供应用程序代码使用,而不是直接提供。Afaik,它们仍然作为文件提供,但它们由 GAE 服务器提供,因为它们需要在 GAE 实例上。

  3. WAR 的公共部分中的文件默认被视为静态文件和资源文件。因此,如果您希望将它们用作文件,则需要明确排除它们。

  4. /WEB-INF 下的文件永远不会被提供,但可以通过 code 访问。放入代码目录 (/src) 的文件也可以通过代码访问,但不会作为静态文件提供(它们将被复制到 /WEB-INF/classes 中)。

于 2013-03-08T10:20:23.177 回答