我无法在Express服务器中加载我的静态JS

时间:2018-11-05 05:13:52

标签: javascript express

我对这个很不满意,这似乎是一个很好回答的问题,我的代码似乎合法,但是我没有看到这个问题。 。

我有一个.js文件可连接到我的调查页面,并将其添加到<body>标签的底部:

<script type="text/javascript" src="/static/questions.js"></script>

在server.js中,我已经尝试过:

app.use(express.static('public'));
app.use(express.static('data'));
app.use('/static', express.static('public'));
app.use('/static', express.static('data'));

真正覆盖那里的基地。 。 。 “公共”是html页面所在的位置,数据是我的json和.js文件的位置。

树:

root
-app
--data
--public
server.js

但是我仍然无法加载js错误。

Chrome Firefox

给什么,伙计?

3 个答案:

答案 0 :(得分:1)

这是因为在服务器中收到请求时,您没有将js文件发送给用户

例如:我们需要一个名为public.js的js文件

文件路径:ui / publish.js

请求:http //:localhost:4000 / ui / publish.js

app.get('/ui/publish.js', function (req, res) {
  res.sendFile(path.join(__dirname, 'ui', 'publish.js'));
});

尝试一下。

答案 1 :(得分:0)

尝试一下。

Structure 
root
-app
--data
  -- a.js
  -- b.js
--public
   -- a.html
server.js


app.use(express.static('public'));
app.use(express.static('data'));

现在,用于访问a.js的网址是http://localhost:8080/a.js和html http://localhost:8080/a.html

答案 2 :(得分:0)

<script type="text/javascript" src="/questions.js"></script>

您应该像这样修改脚本标签,并在server.js中添加以下行

app.use(express.static(path.join(__dirname, '/app/public')));

将您的js文件放入/app/public文件夹