2017-04-22 26 views
0

現在、Node.jsを使用してウェブサイトを開発中です。 私はちょうど私の404ページを設定し、私はmywebsite.com/404ようなものか、存在しない別のページに移動するとき、それは正常に動作しますが、私はまた、存在しないmywebsite.com/foo/bar、のようなものへのアクセスを試みる場合、CSSなどの資産JSが読み込まれません。Node.js静的フォルダの参照がロードされていないCSS

app.use('/assets', express.static(__dirname + '/public')); 

をそして、ページ自体に:サーバーでは、私が使用しています

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

私は、HTML上の資産の前に../を追加すると、動作することを知っているが、それはありません理想的。どんな助け?あなたの404ページに

Project Folder 
|-App.js 
|-views 
    |-404.ejs 
    |-home.ejs 
|-public 
    |-CSS 
    |-Bootstrap.min.css 
    |-js 
    |-img 
    |-font 
+0

フォルダの構造を教えてください。あなたが表示しようとしているページがありますか? – Teocci

+0

URLは '/'で始まるので、あなたが記述した振る舞いを得るべきではありません。 – Quentin

+0

ファイル構造を含めるように投稿を更新しました。注意点として、私は404ページにCSSを見て、そしてそれは、基本要素の相対URLを解決するためのものですが、 '/何/ /リンク/である/資産/ CSS/boostrap.min.css' –

答えて

0

使用base要素を(あるいはすべてのページ!)、それはあなたが指定したベースパスを使用して、あなたの資産を常にを要求します:次のように

マイフォルダ構造は何かです。例えば

、代わりに/foo/bar/assets/css/bootstrap.min.cssのあなたのケースでは、それは/assets/css/bootstrap.min.cssを要求しますので、あなたの</head>タグがパスとしてhttp://example.comを持つすべての資産を要求する前><base href="http://example.com" /を追加します。

+2

を要求していますスラッシュで始まるURLは相対的なものではなく、絶対的なものです。 OPの問題は他のものでなければならない。また、基本要素は_before_ではなくhead要素の中に追加する必要があります。 –

+0

@PatrickHund私はそれを試して、はい、それは頭の中にあるはずです(それはタイプミスでした)。これは、問題を修正したが、私はそこに他の何かここ –

+0

@zGeekは、私は、ここに根本的な問題を診断したいですか? –

関連する問題