我有一个index.html,它有几个脚本标记,但它们都返回404错误,我无法弄清楚如何解决它。目前,它们位于顶级目录中并以此方式引用。例如<script type="text/javascript" src="./util.js"></script>
。
我尝试使用require('./file.js');
,但在我看来,这不是我想要的。这不会只让我在后端访问吗?它需要与html一起提供。
答案 0 :(得分:2)
express.static()
的root
路径是Express开始匹配磁盘上文件的目录。
app.use(express.static(path.join(__dirname, 'static')));
该路径也不会成为网址的一部分。它以类似于:
的方式与req.path
结合使用
var rootPath = 'orbit'; // from `express.static('orbit')`
console.log(path.join(rootPath, req.path));
// 'orbit/orbit/util.js'
请注意,与评论中的路径相比,orbit
出现两次且static
缺失:
./static/orbit/util.js
或者,使用上面建议的路径:
var rootPath = path.join(__dirname, 'static');
console.log(path.join(rootPath, req.path));
// "/path/to/your/application/static/orbit/util.js"
// assuming `__dirname` is `/path/to/your/application/`