2016-05-16 16 views
0

私のアプリはserver.com/pdf/12345のようなURLからロードされます。静的ファイルを探しているときは、GET /pdf/12345/assets/css/stylesheet.cssと404を試します。私はルートに/public/assetsを探すように指示する方法を理解できません。数多くの異なった構成を試しましたexpress.staticExpress staticはCSSファイルをルートからロードしません

私のディレクトリ構造は次のようになります。

public 
--assets 
----css 
views 
--partials 
----header.ejs 
routes 
--api.js 
server.js 

server.jsはこのようになります(マイナスわかりやすくするために必要です):

app.use('/', routes); 
app.set('views', './views'); 
app.set('view engine', 'ejs'); 

app.use('/public', express.static(path.join(__dirname, 'public'))); 
http.createServer(app).listen(port, function() { 
}) 

マイパーシャル/ header.ejsは

をスタイルシートへのリンクが含まれています

答えて

0

代わりに次のように記述する必要があります。

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

app.use('/public'で始まる場合は、/publicというパスに関数をマウントするように明示していますが、あなたのケースでは、URLがserver.com/publicで始まるかどうかわかりません。しかし、そうでないので、express.static()は決して発火しません。

+0

アセットを取得しようとすると、残念ながら/ pdf/1234 /パスが追加されています。 'GET /pdf/1234/assets/css/style.css 404' –

+0

Ok。あなたのejsファイルでは、hrefを "/assets/css/stylesheet.css"と書いていますか?もしそうなら、私はあなたが間違っていたことを知らない。 – tomtom

+0

ああ、ありがとう!私はEJSファイルのhrefの先頭のスラッシュを忘れていました。 –

関連する問題