Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java应用程序引擎标准环境服务器缓存静态资源_Java_Eclipse_Google App Engine - Fatal编程技术网

Java应用程序引擎标准环境服务器缓存静态资源

Java应用程序引擎标准环境服务器缓存静态资源,java,eclipse,google-app-engine,Java,Eclipse,Google App Engine,我从Google应用程序引擎插件切换到带有Java应用程序引擎组件的Google Cloud SDK插件 现在,当我从Eclipse运行服务器时,它会将web应用程序的所有文件复制到.metadata.plugins\org.Eclipse.wst.server.core\tmp1中的临时目录中 当我在文件系统上修改JS文件时,它们不会自动发布到temp1文件夹,因此当我刷新浏览器时,它会加载JS文件的旧版本 使用旧的谷歌应用程序引擎插件,我会修改一个JS文件并刷新浏览器,它会立即加载更改 是否

我从Google应用程序引擎插件切换到带有Java应用程序引擎组件的Google Cloud SDK插件

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

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

使用旧的谷歌应用程序引擎插件,我会修改一个JS文件并刷新浏览器,它会立即加载更改

是否有一些设置需要修改以使其按我希望的方式工作

我在localhost.Server的workspace/Server/appenginestandard中找到了一个文件。但我不确定自动发布设置意味着什么

<?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>
使用旧的Google App Engine eclipse插件,这些设置工作得非常好

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

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

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

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

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

在上面的示例中,您可以使用s秒。有关配置选项的列表,请参阅,尤其是
和部分

另一方面,如果使用高过期属性,则不会立即看到更改。正如所解释的那样:


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

我已更新我的问题,以在app-engine.xml中显示我对静态文件的设置。这些设置与旧的“谷歌应用程序引擎”插件配合得很好。现在的情况如何?EclipseSetting和expiration属性的组合有效吗?感谢您的回复!!这两套我都已经准备好了。我刚刚更新了我的答案。问题似乎是自动发布不起作用。我假设它应该将源文件夹中的更改复制到temp1目录中。当我刷新浏览器时,将从temp1文件夹加载版本。在某个阶段,我确实看到一条错误消息,说明复制到temp1文件夹时遇到困难。我将尝试在管理模式下重新启动eclipse,看看这是否修复了自动发布。请在“窗口>首选项>服务器>启动”中尝试。请参阅我尝试过的。。。它仍然不起作用。当我重新启动服务器时,所有更改都会从源目录复制/发布到临时目录中。但服务器运行后所做的任何更改都不会自动发布。
<static-files>
  <include path="/**.png" expiration="4d 5h" />
</static-files>