簡體   English   中英

如何修復 Express + ESJ 項目中的 CSS 樣式表路徑

[英]How can I fix CSS stylesheet path in Express + ESJ project

我在我的項目中使用了Express 和 EJS 我希望當我輸入“ localhost:PORT/posts/:articleName ”時,要呈現 a.ejs 文件。 唯一的問題是,即使我有app.use(express.static(__dirname + "/public")); 它不像它應該的那樣工作。 當我檢查post.ejs文件中的樣式表鏈接時,它是“ localhost:PORT/posts/style.css ”。 但我希望路徑為“ localhost:PORT/style.css ”才能工作。 如何修復路徑?

項目結構: https://imgur.com/a/UrYY9lK

GET 請求的代碼 /

app.get("/posts/:articleName", (req, res) => {
for(obj of posts) {
    if(lodash.lowerCase(obj.title) === lodash.lowerCase(req.params.articleName)) {
        console.log("it s a match");
        res.render("post.ejs", {title: obj.title, 
            content: obj.content});
        return;
    }
}
res.redirect("/")
});

帖子= JSON 對象數組

post.ejs = 僅包含特定文章的文件,它不能正常工作,因為它不會從公共目錄加載 style.css 文件。

試試這個變種,因為你寫的這部分代碼不正確:

 app.use(express.static('public'));

顯然,您需要在 css 文件之前有一個“/”或將其放在另一個子目錄中以獲得正確的路徑

所以link rel="stylesheet href="/style.css"確實有效,但link rel="stylesheet href="style.css"無效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM