gpt4 book ai didi

Java App Engine 标准环境服务器缓存静态资源

转载 作者:行者123 更新时间:2023-12-02 11:52:32 26 4
gpt4 key购买 nike

我从 Google App Engine 插件切换到带有 Java 应用引擎组件的 Google Cloud SDK 插件。

现在,当我从 Eclipse 运行服务器时,它会将 Web 应用程序的所有文件复制到 .metadata.plugins\org.eclipse.wst.server.core\tmp1 内的临时目录中

当我修改文件系统上的 JS 文件时,它们不会自动发布到 temp1 文件夹,因此当我刷新浏览器时,它会加载旧版本的 JS 文件。

使用旧的 Google App Engine 插件,我会修改 JS 文件并刷新浏览器,它会立即加载更改。

我需要修改一些设置才能使其按照我想要的方式工作吗?

我在 localhost.server 的工作区/服务器/App Engine Standard 中找到了一个文件。但我不确定自动发布设置是什么意思。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<server auto-publish-setting="2" auto-publish-time="0" hostname="localhost" id="App Engine Standard at localhost" name="App Engine Standard at localhost" runtime-id="App Engine Standard Runtime" server-type="com.google.cloud.tools.eclipse.appengine.standard.server" server-type-id="com.google.cloud.tools.eclipse.appengine.standard.server" start-timeout="240" stop-timeout="240" timestamp="12">
<list key="app-engine-server-modules-list" value0="org.eclipse.jst.jee.server:CodeAvengers"/>
<list key="modules" value0="CodeAvengers::org.eclipse.jst.jee.server:CodeAvengers::jst.web::3.1"/>
</server>

以下是 appengine-web.xml 中静态文件的设置

<static-files>
<include path="/js/**" expiration="1s" />
<include path="/i/**" expiration="1s" />
<include path="/audio/**" expiration="1s" />
<include path="/image/**" expiration="1s" />
<include path="/images/**" expiration="1s" />
<include path="/css/**" expiration="1s" />
<include path="**.nocache.*" expiration="1s"/>
<include path="/d-md/**" expiration="1s" />
<include path="**" expiration="30d"/>

<exclude path="/d/**" />
<exclude path="/ca/**" />
<exclude path="/files/**" />
</static-files>

使用旧的 Google App Engine eclipse 插件,这些设置完全可以正常工作。

我检查了 temp1 文件夹,似乎自动重新发布不起作用。当我修改源文件夹中的文件时,这些更改不会自动发布。

是否有其他地方的某些设置覆盖了自动发布设置?

最佳答案

auto-publish-setting="2"是一个 Eclipse 设置,您可以在右键单击服务器并选择“打开”时修改该设置。转到右侧的“发布”类别。共有三个选项,每个选项对应一个数字。数字 2 对应于“资源更改时自动发布”。见下图:

enter image description here

如果您想查看静态文件中的更改,则应在 appengine-web.xml 中为该文件设置低过期属性。它会是这样的:

<static-files>
<include path="/**.png" expiration="4d 5h" />
</static-files>

在上面的示例中,您可以使用 s 来表示秒。请参阅appengine-web.xml reference特别是 <static-files>static cache expiration部分,查看配置选项列表。

另一方面,如果您使用高过期属性,您将不会立即看到更改。如this section解释:

“.. 在给定过期时间传输文件后,即使用户清除自己的浏览器缓存,通常也无法将其从中间缓存中清除。重新部署新版本的应用程序将不重置任何缓存...”

关于Java App Engine 标准环境服务器缓存静态资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47785460/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com