我有几个相同的js和css文件,我以前从不同的jsps加载。
如果已经加载了CSS和js,则无需再次加载文件。
但是这些文件正在重新加载。并在Firebug控制台中提供200个成功代码。
它应该给出302成功代码

我可以直接点击网址。我不想动态调用js和CSS。

 加载jsp内容

通过相对路径完成CSS和JS加载。我无法复制代码。因为这里不允许

如果有任何其他信息,请更新

最佳答案

假设您要在<script><link>标记中将来自JSP的CSS和JS文件作为静态引用进行引用,则可以通过在首次服务时设置HTTP标头来避免在每次请求时为浏览器提供这些文件的情况他们。

在没有为资源设置适当的到期时间或“新鲜度”保证的情况下,即使资源可能存在于浏览器缓存中,浏览器通常每次都会最终发布该资源的新副本。请注意,如果禁用了浏览器缓存,那么作为Web程序员,您将无法对浏览器的行为进行任何操作,除非让用户启用浏览器缓存;否则,您将无法使用浏览器缓存。在此之前,浏览器将每次都请求新的资源副本。这些请求可以由代理缓存来满足,但是不必存在这样的缓存。

可以通过以下任一方法来设置Java Web应用程序中的资源到期时间或新鲜度保证:


配置HTTP服务器或Web应用程序服务器(如果可能)以在为CSS和JS文件或mimetypes生成的HTTP响应中设置ExpiresCache-Control标头。服务器之间应进行的配置更改会有所不同,并且过于庞大,无法在此处列出。
为您的Web应用程序编写一个Servlet过滤器,该过滤器将拦截以*.js*.css结尾的URL的所有响应,并将HTTP ExpiresCache-Control标头添加到响应中。此选项不太可取,特别是如果您希望具有与Web和应用程序服务器相同的可配置性;您将需要通过init参数为web.xml文件中的过滤器提供任何配置选项。同样,对配置的更改将需要重新启动包含过滤器的应用程序。


如果您需要了解为ExpiresCache-Control标头指定的值,那么我建议您阅读"Caching Tutorial for Web Authors and Webmasters",其中提供了有关如何使用ExpiresCache-Control标头的详细信息,以及它们如何影响缓存行为。

Expires标头或max-age标头中的Cache-Control值中指定的到期时间的建议值范围从几分钟到几小时不等,具体取决于您更改网站内容的频率。您还必须避免使用Cache-Controlno-cache值指定no-store标头,因为它们通常会在下次尝试时发出对同一资源的请求。

10-08 12:55