我正在使用express.js框架在heroku上运行一个node.js服务器。
这是我的服务器的样子:
var express = require('express');
var app = express();
app.use(express.static(__dirname + '/static'));
var port = process.env.PORT || 8000;
app.listen(port);
我的索引.html文件具有以下javascript链接:
<script src="/js/chartview.js"></script>
<script src="/js/bootstrap.js"></script>
<script src="/js/bootstrap-select.js"></script>
我的目录系统如下所示:
server.js
/static
-index.html
-/js
-bootstrap.js
-bootstrap-select.js
-chartview.js
-/css
-bootstrap.css
-bootstrap-select.css
-styles.css
Chrome 以适当的 css 样式显示我的 html 页面,但控制台显示:
Failed to load resource: the server responded with a status of 404 (Not Found) https://websitename.herokuapp.com/js/chartview.js
Failed to load resource: the server responded with a status of 404 (Not Found) https://websitename.herokuapp.com/js/bootstrap.js
Failed to load resource: the server responded with a status of 404 (Not Found) https://websitename.herokuapp.com/js/bootstrap-select.js
当我将索引.html标签更改为如下所示时,它会正确加载:
<script src="chartview.js"></script>
<script src="bootstrap.js"></script>
<script src="bootstrap-select.js"></script>
我将目录系统更改为如下所示:
server.js
/static
-index.html
-bootstrap.js
-bootstrap-select.js
-chartview.js
-/css
-bootstrap.css
-bootstrap-select.css
-styles.css
这不是理想的,因为我想有一个/js 文件夹。
任何建议将不胜感激!
从控制台错误https://websitename.herokuapp.com/js/chartview.js
,文件未在静态文件夹中检查。
因此,更改索引.html以包含这样的脚本。
<script src="js/chartview.js"></script>
即从头开始删除/
。 因为路径是相对于索引.html的。
对其他三个文件执行相同的过程。
另外,您提到CSS文件已正确加载。你能展示一下你是如何准确地包含这些 css 文件吗?即 CSS 的路径。
如果这没有帮助,请在此处发表评论。
尝试将文件放在公用文件夹中并使用如下所示的路径"
不要使用"__dirname"仅使用
app.use(express.static('static'));