欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

使用Node.js和Express時,路由參數導致CSS無法加載

林雅南1年前8瀏覽0評論

我正在使用Node.js、Express和EJS模板引擎構建一個簡單的網站,但我無法將外部CSS文件加載到具有路線參數的路線上。我的代碼如下所示:

const express = require("express");
const app = express();
var AWS = require('aws-sdk');
var uuid = require('uuid');
var request = require('request');
var Amplify = require('aws-amplify');
const { info } = require("console");

app.use(express.static("public"));
app.set("view engine", "ejs");

app.get("/Test1/", function(req, res){
res.render("Test1.ejs");
});

app.get("/Test2/:route", function(req, res){
res.render("Test2.ejs")
});

Test1.ejs和Test2.ejs是彼此的精確副本,一個是從另一個復制粘貼的。

我能夠看到CSS文件在Test1上正確加載,但是在Test2 express上發送的是Test2.ejs的HTML,而不是實際的CSS文件。這是沒有重新加載或改變任何東西。如果CSS沒有在我的任何一條路線上正確加載,我不會感到困惑,因為這表明我在使用express時出現了一些問題,但我不知道它如何能在我的所有其他路線上正常工作,并在使用route參數時失敗。我還嘗試實際使用路由參數,例如

app.get("/Test2/:route", function(req, res){
const routeParam = req.params.route;
res.render("Test2.ejs", {
    routeParam: routeParam
});

});`

我還在頁面中顯示了routeParam,以確保它能正常工作,而且它確實能正常工作,只是頁面仍在獲取頁面的HTML,而不是正確的CSS文件,導致它的格式不正確。

我很感激在這方面的任何幫助,謝謝

感謝您研究這個CoderFF,您幫助我找到了如何讓它工作的方法。看起來問題是我的css文件直接在公共文件夾中,而不是在它的子目錄中。html必須是這樣的:

<link rel="stylesheet" type="text/css" href="/css/customStyle.css" />

它必須在href標記中包含前導“/”。我不知道以前在沒有路線參數的路線上它是如何工作的,但它確實是這樣。這似乎同樣適用于公共文件夾中的/images/文件夾中的圖像。

我真的不能復制這個。我正在做的是:

將我的CSS放在public/css/all.css中。文件只包含一行:html {background-color: #aaaaaa}這樣我就可以知道它已經加載了 將兩個模板放在views/Test1.ejs和views/Test2.ejs中,并在其中放入相同的內容:& lthtml & gt& lthead & gt& ltlink rel = & quot樣式表& quottype = & quottext/CSS & quot;href = & quot/CSS/all . CSS & quot;/& gt;& lt/head & gt;& ltbody & gt& lt/body & gt;& lt/html & gt; 而且效果非常好。

我假設您已經在public/ folder中創建了一個文件夾Test2,您在其中放置了CSS。在這種情況下,您到css的路徑是/Test2/some.css匹配您的第二個路由,而不是獲得一個CSS文件,您從該路由獲得一個HTML。

在這種情況下,移動CSS文件會有所幫助。