javascript - Angular 在我不想要的 .js 文件请求中添加一个随机数

标签 javascript node.js angularjs express browser-cache

对不起,如果这是一件微不足道的事情......我一直无法解决这个问题。

我希望缓存所有 Js 文件(我已将 maxAge 设置为一天,如您在下面的代码片段中所见)。 css 和图像被缓存在浏览器中,但不是 .js 文件。

某个地方正在向每个 js 文件添加一个随机数作为查询字符串参数,这会强制浏览器不缓存,我猜它可能就是这样做的。

有没有正确配置 express 以便不添加随机数查询字符串。

var oneDay = 86400000;

app.use(express.compress());

app.use('/assets', express.static(path.join(__dirname, 'public/app/assets/'), { maxAge: oneDay }));
app.use('/app', express.static(path.join(__dirname, 'public/app/'), { maxAge: oneDay }));

这是我的浏览器日志,显示了添加到 js 文件中的随机数

Browser network log

提前致谢...

最佳答案

首先,您发布的代码似乎实际上是 node.js (ExpressJS),而不是 AngularJS。 maxAge 属性与缓存有关,尽管正如@robertklep 指出的那样,这不会导致添加时间戳。 (参见 http://expressjs.com/api.html#res.sendfile)?

其次,Angular 通过 $resource 对象本身支持资源缓存——看这个: http://docs.angularjs.org/api/ngResource .$资源

第三种可能性更大——显示的时间戳与 jQuery 与 AJAX 的工作方式相同,正如@Nate 在评论中所建议的那样。很可能修改 $resource 配置/调用将解决此问题。

最后,发布更多代码有助于确定问题所在。

关于javascript - Angular 在我不想要的 .js 文件请求中添加一个随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20854431/

相关文章:

javascript - 我无法从 JSON 对象访问数据

android - 使用Apache Cordova的Node.js和Socket.io应用程序无法在android中运行

javascript - 对象作为 $http 参数

javascript - 将 future 日期添加到从 json 响应获取的日期

angularjs - 如果在不同的选项卡或浏览器上最小化,Firebase 通知会显示两次

javascript - Spring Boot 不提供静态 javascript 文件

javascript - 加载 YouTube 评论后火狐插件自动调用 JavaScript

javascript - 如何使用 tweenJS 使位图移动到某些点

javascript - 异步回调不可能嵌套

c# - socket.io 使用 Newtonsoft.json 和 socketIOClient 发送到 C#