Javascript Node js提供旧版本的修改过的角度文件(而不是新版本的文件)

Javascript Node js提供旧版本的修改过的角度文件(而不是新版本的文件),javascript,angularjs,node.js,express,mean-stack,Javascript,Angularjs,Node.js,Express,Mean Stack,我正在用平均堆栈编程一个项目。除了静态文件,一切正常 我在节点路由器文件中有一些规则来服务静态文件。它工作正常,但是我对一个角度文件做了更改,但是节点服务器返回了这个文件的旧版本(在更改之前) 为什么会这样 我的服务器路由代码主要是: var app = express(); app.use("/node_modules/angular", express.static(__dirname + '/node_modules/angular')); app.use("/scripts", exp

我正在用平均堆栈编程一个项目。除了静态文件,一切正常

我在节点路由器文件中有一些规则来服务静态文件。它工作正常,但是我对一个角度文件做了更改,但是节点服务器返回了这个文件的旧版本(在更改之前)

为什么会这样

我的服务器路由代码主要是:

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静态中间件服务于文件的新版本,而无需重新启动服务器。我可以建议您在静态文件夹中设置或监视文件更改,并触发服务器重启

我猜您只是在开发过程中使用这种设置。理想情况下,静态文件永远不会更改,文件的新版本应该反映在新文件名中。默认情况下,express静态中间件服务于文件的新版本,而无需重新启动服务器。我可以建议您在静态文件夹中设置或监视文件更改,并触发服务器重启

问题是express会缓存静态文件,因为它们不应该像Yevgen说的那样更改。这就是为什么在生产中经常会看到像
mainSOMENUMBER.css
这样的东西。所以每次你更新一个资源文件,比如
main.css
,或者在本例中是
app.js
,你都会给它添加一个版本号,然后更改源代码

长话短说,这是你的解决办法

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

问题是express会缓存静态文件,因为它们不应该像Yevgen说的那样更改。这就是为什么在生产中经常会看到像
mainSOMENUMBER.css
这样的东西。所以每次你更新一个资源文件,比如
main.css
,或者在本例中是
app.js
,你都会给它添加一个版本号,然后更改源代码

长话短说,这是你的解决办法

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

我不明白。为什么我需要nodemon(一个自动化工具)来重新启动节点服务器?如果我的“手动”重启没有成功,为什么nodemon会成功呢?哦,我假设手动重启解决了你的问题,而不是浏览器的缓存相关问题,这就是问题所在。即使我重新启动计算机,问题仍然存在。我不明白。为什么我需要nodemon(一个自动化工具)来重新启动节点服务器?如果我的“手动”重启没有成功,为什么nodemon会成功呢?哦,我假设手动重启解决了你的问题,而不是浏览器的缓存相关问题,这就是问题所在。即使我重新启动计算机,问题仍然存在。您的问题标题与您在问题正文中描述的问题相反。请更正一个或另一个问题。您的问题标题与您在问题正文中描述的问题相反。请纠正一个或另一个