节点静态js文件不是刷新

时间:2016-07-24 18:22:02

标签: javascript css node.js express

我正在尝试构建我的第一个节点应用程序并且遇到了javascript文件的问题,但我的css没有问题,所以我很困惑。这是我的app.js:

var express = require("express");
var app = express();
app.set("view engine", "ejs");
app.use(express.static(__dirname + '/public'));

我无法加载我的js文件,直到我添加了第4行,我在Chrome控制台中看到了#34; connected",这是来自我的js文件。我遇到的问题是,由于我添加了第4行,express.static我的js文件没有改变,我在文件中添加的所有内容都没有显示在chrome resources选项卡中。奇怪的是,我的css文件工作正常,所以我有点难过。

我正在尝试链接到js文件,如:

<script src="javascripts/main.js"></script>

我不确定为什么它不能正常工作,我尝试重新启动服务器,然后安装了nodemon,它也没有工作。我的文件夹结构是

app.js
public
    stylesheets
        main.css
    javascripts
        main.js

我已经查找了问题并且发现人们没有连接到静态文件,没有连接后他们没有显示任何已保存的更改

3 个答案:

答案 0 :(得分:5)

我认为您必须在浏览器中禁用缓存。因为浏览器认为文件不是旧的从服务器刷新并使用缓存的文件 对于Chrome - 按F12打开控制台(也在其他浏览器中工作)并检查它。

enter image description here

答案 1 :(得分:0)

尝试使用绝对路径以确保正确加载静态资源。使用相对路径(例如javascripts/main.js)可能会有问题,因为浏览器将它们转换为绝对路径的方式(它考虑了完整的URL,包括任何嵌套路由)。

例如,如果您设置了路由/foo/bar并且使用了相对路径,那么当您在浏览器中访问/foo/bar时,浏览器将尝试访问/foo/bar/javascripts/main.js。< / p>

答案 2 :(得分:0)

您遇到的问题已经被像webpack这样的库所回答。它做热重装。无论您对Web应用程序所做的更改是什么,都将加载到客户端,并且将修补文件以更新更改,而无需重新启动服务器。您将在浏览器中运行更新的脚本。

相关问题