【问题标题】:GET to CSS returns 404GET 到 CSS 返回 404
【发布时间】:2019-04-21 23:26:22
【问题描述】:

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

这是文件结构:

注意,在这再次被标记为欺骗之前,我找不到任何其他对我有帮助的问题。

【问题讨论】:

  • 嘿 JJJ,我不确定你为什么编辑我的问题:删除了“所以”,并删除了我添加的注释。我也不确定为什么这个问题值得一票否决。您的编辑对我来说似乎毫无用处。如果你能说出你的推理,那就太棒了。

标签: html css express


【解决方案1】:

从文档中可以看出,路由中不应该有public

https://&lt;website&gt;.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 的一部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-31
    • 2019-05-09
    • 1970-01-01
    • 2013-03-16
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多