2017-01-18 40 views
1

我很新,節點,快遞等我做了一個博客應用程序,我面臨一個問題。我正在使用貓鼬,節點,快遞和ejs。Css沒有加載req.params或其他東西

當我打電話

router.get('/posts', function(req, res){ Post.find({}, function(err, posts){ 
    res.render('viewpost.ejs', { 
     posts 
    }); }); }); 

一切工作完全正常。我得到了我的帖子,並且css也在工作。問題是,當我打電話

router.get('/posts/:posts_id', function(req, res){ 
    Post.find({_id: req.params.posts_id}, function(err, posts){ 
     res.render('viewpost.ejs',{ 
     posts 
    }); 
    }); 
}); 

郵政似乎是工作,但在控制檯中我得到了

GET /posts/posts.css 304 1.854毫秒 而viewpost.ejs看起來像它不使用CSS 。

服務器文件server.js

app.use(express.static('public')) 
app.use(express.static(path.join(__dirname, 'public/css/'))); 
app.use(express.static(path.join(__dirname, 'public/img/'))); 

viewpost.ejs 

<!DOCTYPE html> 
<html> 
    <head> 
    <link rel="stylesheet" href="/bower_components/bootstrap/dist/css/bootstrap.css"/> 
    <link rel="stylesheet" href="style.css"> 
    <script src="/bower_components/jquery/dist/jquery.js"></script> 
    </head> 
    <body class="cyc"> 
    <% include ./partials/navbar.ejs %> 

<%= posts %> 
</body> 
</html> 

所以,當我使用途徑沒有req.params一切似乎是工作 確定。當我用任何參數調用它時,我的css文件不起作用。

回答

0

<link rel="stylesheet" href="style.css">試圖從其中HTML頁面是一樣的路徑加載style.css。所以,對於/posts,它會嘗試加載/style.css/posts/1,它會嘗試加載/posts/style.css。但後者與您的/posts/:posts_id端點相匹配,因此會被調用posts_id == 'style.css',這是無意義的。

解決的辦法很簡單,使鏈接絕對:

<link rel="stylesheet" href="/style.css"> 
+0

你是個巫師的人!謝謝! –