因此,我最近将我的网站从单页网站移到了快速服务器。现在,我更改了文件路径,但无法加载CSS和JS文件。
如在开发人员控制台中所见,对https://<website>.com/public/css/main.css
的GET请求返回404。
这是CSS链接:
<link rel="stylesheet" type="text/css" href="../public/css/main.css">
这是我的服务器:
const express = require('express');
const app = express();
const getpages = require('./router/getpages.js');
app.use('/', getpages);
app.use(express.static('public'));
// 404's
app.use((req, res) => {
res.status(404).send('Page not found or non-existant.<br><br><a href="/">Home</a>');
});
app.listen(3000, console.log('Running on port 3000'));
这是./router/getpages.js
:
const router = require('express').Router();
const path = require('path');
router.get('/', (req, res) => {
res.sendFile(path.join(__dirname, '../views/', 'index.html'));
})
module.exports = router;
这是文件结构:
注意,在再次将其标记为重复对象之前,我找不到其他对我有帮助的问题。
答案 0 :(得分:2)
从文档中可以看出,路由中不应包含public
https://<website>.com/css/main.css
应该可以正常工作。
引用:https://expressjs.com/en/starter/static-files.html
例如,使用以下代码来投放图像,CSS文件和 位于名为public的目录中的JavaScript文件:
app.use(express.static('public'))
现在,您可以加载以下文件: 在公共目录中:
例如:http://localhost:3000/images/kitten.jpg
Express查找相对于静态目录的文件,因此 静态目录的名称不属于URL。