Node.js - Express - 静态js文件未在html

时间:2018-05-30 07:59:00

标签: javascript html node.js express template-engine

我知道这是一个很成熟的问题,但我已经尝试了所有类型的教程,并在堆栈和其他地方遵循了所有建议,我的问题没有得到解决。

我正在尝试构建一个带有node.js和express的简单静态网站,以利用增加的服务器端功能,如fs,数据库集成等等,但使用旧式css,html和js。

我知道node.js喜欢使用模板引擎(jade,ejs),但这不是我的情况,我需要一个简单的index.html文件,底部有一个脚本标记,用于存储在静态文件夹中的javascript逻辑/ public(分开关注)。 现在,init.js只包含一个用于测试的console.log。

 <script type="text/javascript" scr="/public/init.js" charset="utf-8"></script>

我已经关注了快速使用静态文件的指南,并尝试了以下方法的所有可能组合(为了清楚起见,这是一个名为server.js的文件,即我项目的node.js主文件):

app.use("/public", express.static(__dirname + '/public'));

这解决了加载css文件的问题,现在我的页面正确加载了css,其中包含:

<link rel="stylesheet" href="/public/style.css">

我也尝试了很多脚本标签的组合,如下所示:

<script type="text/javascript" scr="/init.js" charset="utf-8"></script>
<script type="text/javascript" scr="/public/init.js" charset="utf-8"></script>
<script type="text/javascript" scr="./public/init.js" charset="utf-8"></script>
<script type="text/javascript" scr="../public/init.js" charset="utf-8"></script>
<script type="text/javascript" scr="init.js" charset="utf-8"></script>

我的问题是为什么我的/public/init.js没有加载?我可以通过输入地址清楚地指出它,它将以文本显示文件的内容:

http://localhost:9000/public/init.js 

我已经在浏览器的开发工具中检查了网络选项卡,并且完全忽略了init.js。 是否有任何安全策略阻止它加载? 谢谢。

1 个答案:

答案 0 :(得分:0)

我猜你拼错了scr它应该src

<script type="text/javascript" src="/public/init.js" charset="utf-8"></script>