首页 > 解决方案 > Nodej.js:由于不必要的查询参数,静态文件缓存不起作用

问题描述

我的 Node.js 代码缓存静态文件如下:

app.use(express.static(path.join(__dirname, "public"),
    { maxAge: (process.env.NODE_ENV === "local") ? 0 : 31557600000 }));

公共文件夹包含我的服务器的所有静态文件。

调用静态文件的 html 代码(我正在使用 EJS)是:

<script src="/assets/js/slick.min.js"></script>
<script src="/assets/js/main.js"></script>
<!--for form validation -->
<script src="/assets/js/parsley.min.js"></script>
<script src="/assets/js/moment.min.js"></script>
<script src="/assets/js/wheelzoom.js"></script>
<script src="/assets/js/alertify.js"></script>
<script src="/assets/js/alertify.min.js"></script>
<script type="text/javascript" src="/assets/js/validator.min.js"></script>
<script src="/assets/js/owl.carousel.min.js"></script>
<script src="/assets/js/jquery.bootstrap.wizard.min.js"></script>

但是当我访问该页面并检查 chrome 上的网络选项卡时,我看到由于将查询参数添加到静态文件获取调用中,浏览器没有从缓存加载文件,而是请求服务器。

在此处输入图像描述

为什么将 a__SbCache添加到那些静态文件中?由于这个问题,静态文件缓存无法正常工作。

标签: node.jsexpressejs

解决方案


我有同样的问题,它只发生在 chrome 中。

我发现这是因为 chrome 扩展:Postman Interceptor 0.2.24

当我禁用它时,问题就消失了。


推荐阅读