GET to CSS返回404

时间:2019-02-08 17:02:07

标签: html css express

因此,我最近将我的网站从单页网站移到了快速服务器。现在,我更改了文件路径,但无法加载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;

这是文件结构:

file structure

注意,在再次将其标记为重复对象之前,我找不到其他对我有帮助的问题。

1 个答案:

答案 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。