Node . js提供修改过的angular文件的旧版本(而不是新版本)
Node js serving old versions of modified angular files (instead on new ones)
我正在使用MEAN堆栈编程一个项目。除了静态文件之外,其他都很好。
我在Node路由器文件中设置了一些规则来为静态文件服务。它是工作的,但是当我在一个Angular文件上做了一个改变,但是Node服务器返回给我的是这个文件的旧版本(在改变之前)。
为什么会发生这种情况?
我的服务器路由代码主要是这样的:
var app = express();
app.use("/node_modules/angular", express.static(__dirname + '/node_modules/angular'));
app.use("/scripts", express.static(__dirname + '/public/scripts'));
app.get('*', function(req, res){
res.sendFile(path.join(__dirname + "/public/index.html"));
});
问题是express会缓存你的静态文件,因为它们真的不应该像Yevgen说的那样改变。这就是为什么你会经常在生产中看到像mainSOMENUMBER.css
这样的东西。所以每次你更新一个资源文件,如main.css
或在这种情况下app.js
,你添加一个版本号,然后改变源。
长话短说,这是你的解决方案。
app.use("/node_modules/angular",
express.static(__dirname + '/node_modules/angular'){maxage: 0});
我猜您只在开发过程中使用这种设置。理想情况下,静态文件不应该改变,新版本的文件应该反映在新的文件名中。默认情况下,express静态中间件在不重启服务器的情况下服务于文件的新版本。在您的情况下,我可以建议设置nodemon或forever来监视静态文件夹中的文件更改并触发服务器重启。
相关文章:
- 如何确定相对较新版本的IE的高度和宽度(IE8不喜欢从JavaScript设置这种样式吗?
- 浏览器兼容性/支持较新版本
- 如何在较新版本的 Free-JQGard 中重置搜索工具栏和搜索过滤器
- 如何用新版本的因果报应取代被弃用的吞咽因果报应
- npm安装can'找不到新版本
- 为什么获胜't客户端在公用文件夹中接收此脚本的新版本
- 获取模板是用我的Node.JS应用程序的新版本Handlebars错误预编译的
- 上载图像的新版本并避免缓存
- 如何避免被大量的框架和新版本的JavaScript淹没
- 推出新版本的JavaScript,css和图形内容,使用ASP .NET MVC
- 无法将 Slickgrid 的标头与 Jquery 新版本分组
- 谷歌分析 - 旧版本和新版本有什么区别
- 为什么这个选择菜单在jQuery和JQM的新版本组合中失败
- 一个函数,它接受回调并创建只能调用一次的新版本的回调.Javascript
- Splitter.js 不适用于新版本的 jQuery
- Breezejs新版本'的合并实体功能
- Javascript:检测是否缓存了请求的文件,如果存在较新版本,则删除缓存
- 一些jquery插件不适用于新版本的jquery库
- 谷歌地图缩放滚动条不会出现在新版本中
- 从不同范围访问较新版本的变量(JavaScript / jQuery)