[英]How do I include an external JavaScript file when serving an HTML file with a response object in expressjs?
我的快递应用程序在初始GET时从我的磁盘提供HTML页面(即,如果我在浏览器中点击“ http:// localhost:3000 / ”)。 现在我想访问一个与HTML文件位于磁盘相同位置的JavaScript文件。 当我尝试使用时将其包含在'index.html'中
<script src="/myJavaScriptFile.js" type="text/javascript" ></script>
要么
<script src="./myJavaScriptFile.js" type="text/javascript" ></script>
要么
<script src="~/MyAbsolutePath/myJavaScriptFile.js" type="text/javascript"</script>
它不起作用。 永远不会到达myJavaScriptFile.js文件。
我的快递应用看起来像这样:
var express = require('express')
var testMethod = require('./test')
var app = express()
app.use(bodyParser.urlencoded({ extended:false }));
var server = app.listen(3000, function () {
var host = server.address().address
var port = server.address().port
console.log('Example app listening at http://%s:%s', host, port)
})
app.get('/', function (req, res) {
console.log('In /');
res.sendFile(__dirname + '/index.html');
})
Express应用程序使用res.sendFile函数使用引用路径'__dirname'+'/ index.html'为'index.html'提供服务。 (我开始觉得这是一种糟糕的做法。如果你这么想,请告诉我)。
另外,正如我们在快递应用程序中看到的那样,包含“test”的外部JavaScript文件与“index.html”和“express.js”位于同一位置,没有任何问题。 有谁能请说明背景中实际发生的事情? 如果由快递应用程序提供,我可以在我的'index.html'中提供的JavaScript文件的参考路径究竟是什么? 谢谢。
借助Express - express.static中的内置中间件,可以完成服务文件,如图像,CSS,JavaScript和其他静态文件。
将目录的名称(将标记为静态资产的位置)传递给express.static中间件,以便直接开始提供文件。 例如,如果将图像,CSS和JavaScript文件保存在名为public的目录中,则可以执行以下操作:
app.use(express.static('public'));
现在,您将能够加载公共目录下的文件:
http://localhost:3000/images/kitten.jpg
http://localhost:3000/css/style.css
http://localhost:3000/js/app.js
http://localhost:3000/images/bg.png
http://localhost:3000/hello.html
快乐帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.