簡體   English   中英

如何在Express中使用參數渲染路線中的模板?

[英]How to render template in route with params in Express?

我正在使用Express和Pug模板引擎。 我有兩條路線:

/ profile顯示已登錄的用戶配置文件信息。 只能由登錄用戶訪問

/ profile /:id顯示其他用戶的信息。 每個人都可以訪問。

這是我的代碼:

    app.get("/profile/:id", function(req,res) {
      // Get info from DB for specifed username in req.params.id
      res.render("profile.pug", locals);
    });

    app.get("/profile", isLoggedIn, function(req,res) { // isLoggedIn is middleware which checks if user is logged in
      res.render("profile.pug", locals);
    });

我使用express.static服務我的JS / CSS /圖像:

app.use(express.static(__dirname+"/public"));

當我瀏覽/ profile時 ,一切正常,但是當我嘗試/ profile /:id時,它將呈現沒有樣式的模板。 Morgan loggger寫道/ profile /:id試圖不是從域根目錄而是從/ profile獲取資產!

GET /profile/css/bootstrap.css 404 7.352 ms

應該是:

GET /css/bootstrap.css 200 7.352 ms

如何解決?

最好為此類靜態文件定義其他路由。

app.use("/static", express.static(path.resolve('./public/assets')));

然后,將所有css文件放置在Assets文件夾下。 之后,您可以在模板文件中使用“ /static/css/bootstrap.css”。

我在您的代碼中假設的問題是它正在使用profile /:id作為當前路徑。

暫無
暫無

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

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