gpt4 book ai didi

caching - 在Grails中,禁用名称哈希,但保持hashandchange资源插件的过期 header ?

转载 作者:行者123 更新时间:2023-12-02 15:29:29 30 4
gpt4 key购买 nike

我正在使用 grails资源插件。在客户端上,我使用 require.js 来获取js。

我的require.js配置-

baseUrl: '/js/lib', 

启用资源插件后-
  • 浏览器将请求 /js/lib/abc.js 浪费〜300ms
  • 到达服务器后,它将重定向到/static/2432yi4h32kh4232h4k2h34ll.js
  • 浏览器将在其缓存中找到该文件并提供服务。

  • 因此,我使用-禁用了 缓存资源插件-
    grails.resources.mappers.hashandcache.excludes = ['**/*.js']

    和新的require.js配置-
    baseUrl: '/static/js/lib',    
    urlArgs: "bust=" + application_version,

    删除 缓存的资源解决了重定向问题,但是还删除了为js文件设置的expires header ,导致浏览器根本不缓存js文件。

    我如何仅在缓存资源中禁用名称哈希,并保留其设置的过期标题。
    否则,是否可以使用Grails的任何插件来设置这些 header ,并且它们可与Resources插件配合使用。

    我正在使用 Tomcat Haproxy 来提供内容。

    最佳答案

    我认为最好的解决方案是将哈希的js文件名放在require定义中,而不是原始的清晰名称。

    您可以使用资源外部标记来回显散列的名称

    <r:external uri="js/custom.js"/>
    <script type="text/javascript">
    var urlOfCSSToLoadInJSCode = '${r.external(uri:"css/custom.css").encodeAsJavaScript()}';
    </script>
    <r:external uri="icons/favicon.ico"/>

    关于caching - 在Grails中,禁用名称哈希,但保持hashandchange资源插件的过期 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21909960/

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