【问题标题】:Why doesn't the CSS work on certain routes?为什么 CSS 在某些路由上不起作用?
【发布时间】:2021-08-03 20:07:52
【问题描述】:

我不知道如何准确解释这一点,但由于某种原因,CSS 不适用于带有 node.js 和 express 的某些路由。

例如,CSS 对路由“/feed”非常有效,但对于“/users/:username”则完全不适用,即使 HTML 文件链接到同一个 CSS 文件。

我注意到这不是第一次发生这种情况,我不知道为什么会发生这种情况。如果有人可以向我解释/指导我应该做的正确方向,那将不胜感激。

这是一个更好的例子:

索引路由(CSS 适用于此路由)

// @ROUTE: Home Route
// @DESCRIPTION: Renders the homepage
server.get('/', (req, res)=> {
    filesDB.find({}).sort({createdAt: '-1'}).exec((err, data) => {
        if(err) {
            throw err
        } else {
            res.render('Home.ejs', {
                pageTitle: "Feed :: ImgHub",
                curSession: req.session,
                images: data
            })
        }
    })
})

/users/:username 路由(CSS 不适用于此路由)

// @ROUTE: User Route
// @DESCRIPTION: Renders all the posts that were uploaded by the selected user
server.get('/user/:username', (req, res)=> {
    const username = req.params.username

    filesDB.find({'uploader': username}).sort({createdAt: '-1'}).exec((err, data)=> {
        if(err) {
            throw err
        } else {
            res.render('User.ejs', {
                pageTitle: `${username} :: ImgHub`,
                curSession: req.session,
                images: data
            })
        }
    })
})

表达静态文件

server.use(express.static(__dirname + '/CSS'))

仅供参考:我在网站上的控制台日志中没有收到任何错误。

【问题讨论】:

  • 在 app.use 中遵循这个约定会有所帮助吗? app.use(express.static(path.join(__dirname, 'css'))); 该函数中的第二个参数必须是一个对象,我不确定 + 符号和 css 文件夹字符串是否可以这样工作。
  • 您能说明您在 HTML 中包含 CSS 文件的位置和方式吗?例如,给定 /user/:username 目录,您的 CSS 文件可能会尝试从 /user/CSS/style.css 包含在内。检查你的浏览器控制台,看看你的 CSS 文件试图从哪个路由中包含进来。

标签: javascript html css node.js express


【解决方案1】:

我认为问题出在您的 HTML 中

你像这样添加你的 CSS 文件:

<link rel="stylesheet" href="styles.css">

当您的 Url 类似于 /feed 时,这没问题,但在 /something/here 之类的链接上,您的 CSS 会被搜索为 /something/styles.css。因此,您需要具体并将/ 添加到您的 CSS 声明中,如下所示:

<link rel="stylesheet" href="/styles.css">

因此,您的样式将始终从 / 的根目录中搜索

【讨论】:

  • 我正要写一样的,绝对路线应该可以。
猜你喜欢
  • 2014-12-19
  • 1970-01-01
  • 2021-12-15
  • 1970-01-01
  • 1970-01-01
  • 2015-02-09
  • 2021-12-22
  • 2016-01-25
  • 1970-01-01
相关资源
最近更新 更多