我正在使用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"));
});
答案 0 :(得分:0)
我猜你只是在开发过程中使用这样的设置。理想情况下,静态文件永远不会更改,文件的新版本应反映在新文件名中。默认情况下,表示静态中间件在不重启服务器的情况下为新版本的文件提供服务。在您的情况下,我建议您设置nodemon或forever以查看静态文件夹中的文件更改并触发服务器重新启动。
答案 1 :(得分:0)
问题是express会缓存你的静态文件,因为它们确实不应该像Yevgen所说的那样改变。这就是为什么你经常会在生产中看到像mainSOMENUMBER.css
这样的东西。因此,每次更新资源文件main.css
或在这种情况下app.js
时,都会为其添加版本号,然后更改源。
这里的长话短说明是你的修复。
app.use("/node_modules/angular",
express.static(__dirname + '/node_modules/angular'){maxage: 0});