2017-01-18 5 views
1

私は非常にノードに新しく、エクスプレスなど私はブログアプリを作ったと私は問題に直面している。私はmongoose、node、express、ejsを使用しています。CSSがreq.paramsや他の何かで読み込まれていない

私はすべてが完全に正常に動作

router.get('/posts', function(req, res){ Post.find({}, function(err, posts){ 
    res.render('viewpost.ejs', { 
     posts 
    }); }); }); 
を呼び出します。私は私の投稿を受け取り、CSSも同様に働いています。私はポストが動作しているようだが、それは、CSSを使用していないようにコンソールで、私は304 1.854ミリ そしてviewpost.ejs /posts/posts.css

GETが見えてしまった

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

呼び出すときに問題があります。私はreq.paramsせずにルートを使用する場合

Serverファイル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> 

だからすべてがOK を動作しているようです。私は任意のパラメータでそれを呼び出すとき、私の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

ウィザードの男です:

ソリューションは、絶対リンクを作成するために非常に単純です!ありがとう! –

関連する問題