我一直在寻找各种各样的帖子而且无法理解我的错误。无论我做什么,我的css文件都没有被提供。有谁知道为什么?
测试/服务器/ app.js:
var express = require('express');
var path = require('path');
var app = express();
app.use(express.static(path.join(__dirname, 'public')));
app.use(express.static(path.join(__dirname, 'browser')));
var PORT = process.env.PORT || 1337;
app.listen(PORT, function() {
console.log('Server is listening!');
});
测试/浏览器/ index.html中:
<head>
<base href="/" />
<title>Test</title>
<link rel="stylesheet" type="text/css" href="public/style.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular.min.js"></script>
<script src="app.js"></script>
<script src="js/app.controller.js"></script>
</head>
<body>
<p>hello world</p>
</body>
</html>
我的css文件位于test / public / style.css
中答案 0 :(得分:0)
您的应用代码可以在test/server/
中找到,这意味着path.join(__dirname, 'public')
将产生test/server/public
的绝对路径值,而path.join(__dirname, '..', 'public')`
不是您的CSS文件所在的位置。< / p>
相反,你想要使用它:
test/public/
这会使它指向test/public/
。
然而,这只是部分解决了这个问题,因为你也告诉Express /style.css
是静态资源的根目录,这意味着你的样式表的URL是public/style.css
,而不是{{1 }}
如果你想保留public
前缀(你可能会这样做),你需要使用它:
app.use('/public', express.static(path.join(__dirname, '..', 'public')));
在HTML中,请务必使用绝对路径:
<link rel="stylesheet" type="text/css" href="/public/style.css" />