将JS脚本移动到Node.js中的外部文件中,表达了Html页面
我使用express返回一些html页面:
app.get('/', function(req, res){
return res.sendFile(path.resolve(__dirname + '/views/index.html'));
});
index.html
包含标签<script></script>
中的一堆脚本。
我想将它移动到这样的外部文件:
<script src="./indexScripts.js"></script>
但是它不起作用并返回以下错误:
获取http://.../indexScripts.js net :: ERR_ABORTED
获取http://.../indexScripts.js 404(未找到)
你对我该做什么有什么想法吗?
我找到的解决方案是暴露脚本:
app.get('/scripts', function(req, res){
return res.sendFile(path.resolve(__dirname + '/views/indexScripts.js'));
});
......然后使用它:
<script src="scripts"></script>
但它似乎不是处理这种/容易发生安全漏洞的正确方法......
谢谢
回答如下:默认情况下,Express不会提供静态文件(JavaScript,CSS和图像)。您需要使用express.static
中间件明确告诉Express它应该从文件系统提供哪些文件夹。
例:
app.use('/', express.static(path.join(__dirname, 'views')))
然后,您可以通过导航到http://localhost:3000/indexScripts.js
来获取脚本文件。
你可以阅读更多关于static
中间件here的信息。
将JS脚本移动到Node.js中的外部文件中,表达了Html页面
我使用express返回一些html页面:
app.get('/', function(req, res){
return res.sendFile(path.resolve(__dirname + '/views/index.html'));
});
index.html
包含标签<script></script>
中的一堆脚本。
我想将它移动到这样的外部文件:
<script src="./indexScripts.js"></script>
但是它不起作用并返回以下错误:
获取http://.../indexScripts.js net :: ERR_ABORTED
获取http://.../indexScripts.js 404(未找到)
你对我该做什么有什么想法吗?
我找到的解决方案是暴露脚本:
app.get('/scripts', function(req, res){
return res.sendFile(path.resolve(__dirname + '/views/indexScripts.js'));
});
......然后使用它:
<script src="scripts"></script>
但它似乎不是处理这种/容易发生安全漏洞的正确方法......
谢谢
回答如下:默认情况下,Express不会提供静态文件(JavaScript,CSS和图像)。您需要使用express.static
中间件明确告诉Express它应该从文件系统提供哪些文件夹。
例:
app.use('/', express.static(path.join(__dirname, 'views')))
然后,您可以通过导航到http://localhost:3000/indexScripts.js
来获取脚本文件。
你可以阅读更多关于static
中间件here的信息。