Tomcat can';看不到新创建的静态文件,服务器端正在缓存旧文件
我在WindowsXP上使用Tomcat7Tomcat can';看不到新创建的静态文件,服务器端正在缓存旧文件,tomcat,tomcat7,static-files,Tomcat,Tomcat7,Static Files,我在WindowsXP上使用Tomcat7 我在%TOMCATDIR%/webapps/myapplication中有一个包含静态文件(HTML、CSS、JS)的目录 可以通过localhost:8080/myapplication 当“我的服务器目录”中的文件发生更改时,不会反映出来: 修改后的文件返回(200 OK)与之前的相同(使用Fiddler测试;确保没有浏览器缓存问题-使用不同的浏览器清除缓存等)。 该目录中新创建的文件不可访问(404) 无论我尝试重新加载文件多少次,甚至向
- 我在
中有一个包含静态文件(HTML、CSS、JS)的目录%TOMCATDIR%/webapps/myapplication
- 可以通过
localhost:8080/myapplication
- 修改后的文件返回(200 OK)与之前的相同(使用Fiddler测试;确保没有浏览器缓存问题-使用不同的浏览器清除缓存等)。
- 该目录中新创建的文件不可访问(404)
img.jpg?timestamp=…
),上述情况都会发生
在%TOMCATDIR%/conf/context.xml
中,我设置了各种指令来禁用服务器端缓存:
WEB-INF/WEB.xml
怎么了?解决方案似乎是删除
反资源锁定=“true”
如果有人更了解这个主题,或者知道如何以其他方式解决它,我将不胜感激。Tomcat 8-禁用静态资源缓存: context.xml
最后,解决方案是替换以下内容中的%TOMCATDIR%/conf/context.xml文件内容:
<?xml version='1.0' encoding='utf-8'?>
<Context cachingAllowed="false" cacheMaxSize="1" cacheTTL="1">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
WEB-INF/WEB.xml
请注意,如果要将文件上载到webapps/myapplication
,则在取消部署webapp时,Tomcat可能会删除所有文件。您可能希望查看
元素的别名
功能,以“装载”部署目录之外的目录:在取消部署期间不会删除这些目录。我不是指提取到myapplication
的WAR,而是指我自己创建的文件夹。在这种情况下,我想Tomcat永远不应该移除它,对吧?无论如何,我不直接在这个文件夹中开发,我在其他地方开发,Eclipse FileSync插件在文件保存时从dev文件夹同步到服务器文件夹。不过,我会试着看看你写的东西,我的意思是Tomcat会在取消部署时删除部署目录(比如webapps/myapp
)。它还将遵循符号链接(在支持此类内容的文件系统上)并删除所有文件。如果您使用别名
,则在取消部署期间,别名路径中的文件将不会被删除。+1,我遇到了相同的问题,此问题已得到解决。我有点惊讶这没有更多的记录。文档中只说“请注意,将此设置为true会产生一些副作用,包括在正在运行的服务器中禁用JSP重新加载:请参阅Bugzilla 37668。”我遇到了这个确切的问题,但使我的上下文看起来与上面的示例完全相同(当然减去antiresourcelock=“true”)不会产生任何效果。有什么想法吗?另请参见和
<?xml version='1.0' encoding='utf-8'?>
<Context cachingAllowed="false" cacheMaxSize="1" cacheTTL="1">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>