节点js服务旧版本的修改角度文件(而不是新版本)

时间:2015-08-06 20:31:50

标签: javascript angularjs node.js express mean-stack

我正在使用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"));
});

2 个答案:

答案 0 :(得分:0)

我猜你只是在开发过程中使用这样的设置。理想情况下,静态文件永远不会更改,文件的新版本应反映在新文件名中。默认情况下,表示静态中间件在不重启服务器的情况下为新版本的文件提供服务。在您的情况下,我建议您设置nodemonforever以查看静态文件夹中的文件更改并触发服务器重新启动。

答案 1 :(得分:0)

问题是express会缓存你的静态文件,因为它们确实不应该像Yevgen所说的那样改变。这就是为什么你经常会在生产中看到像mainSOMENUMBER.css这样的东西。因此,每次更新资源文件main.css或在这种情况下app.js时,都会为其添加版本号,然后更改源。

这里的长话短说明是你的修复。

app.use("/node_modules/angular", 
express.static(__dirname + '/node_modules/angular'){maxage: 0});