2017-10-16 65 views
0

我在Nodejs/Expressjs中製作一個CRUD應用程序,模板引擎是EJS。nodejs/expressjs update(crUd)操作不顯示css文件

更新的想法是從數據庫中顯示user_id,當管理員點擊user_id時,它應該重定向到edit_team.ejs頁面。

它工作正常,但是當它重定向到edit_team.ejs頁面時,css文件沒有得到加載。我越來越差錯 enter image description here

對於其他所有.ejs文件,所有的css文件都被加載。

我在app.js文件中包含'public'文件夾。

代碼:

夾目錄:

enter image description here

app.js:

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

view_team.ejs

<a class="button" href='/edit_team/<%= team[i].team_id %>'> 
    <span class="glyphicon glyphicon-edit" aria-hidden="true"></span> 
</a> 

個edit_team.js:

var express = require('express'); 
var path = require('path'); 
const { Client } = require('pg') 
const connectionString = 'postgresql://localhost:5432/idid'; 

//router object 
var router = express.Router(); 

router.get('/edit_team/:id', function(req, res){ 
res.render('login/edit_team'); 
}); 

module.exports = router; 

edit_team.ejs(粘貼只有頭部分):

<html lang="en"> 
    <head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <title> 

</title> 
<!-- Bootstrap core CSS --> 
<link href="css/bootstrap.min.css" rel="stylesheet"> 
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font- 
    awesome.min.css" rel="stylesheet"> 
<link rel="stylesheet" type="text/css" href="css/style.css"> 

有人可以幫我試圖找出這裏有什麼問題?

+0

請發佈您的server.js或app.js ...或您用作啓動的任何文件。它「看起來」可能是因爲你沒有將你的css文件作爲靜態內容進行快速服務,但是由於缺乏信息,我可能會錯誤。 – dvsoukup

+0

已添加。但所有其他模板文件都正常運行。我認爲我不是在nodejs中正確處理「編輯」操作 – jackysatpal

回答

0

諸如/edit_team/23的URL提供edit_team.ejs,其包含相對路徑css/bootstrap.min.css。這是相對於/edit_team路徑,所以它會是edit_team/css/bootstrap.min.css,這可能不是你想要的。

你應該能夠使用瀏覽器的開發工具來確認這一點。查看網絡選項卡,並檢查未加載文件的路徑。

嘗試使用路徑相對於當前的路徑都沒有,如:

<link href="/css/bootstrap.min.css" rel="stylesheet"> 

注意額外/

+0

你是一個天才!自昨天起我試圖解決這個問題。相對和絕對的路徑是重要的,現在我明白它的價值。非常感謝。 – jackysatpal