2017-07-04 66 views
2

我正在建立一個相當基本的網頁使用快遞。但是,我的圖像路徑遇到了一些麻煩。快速加載圖片相對於url

此代碼正常工作。

app.use(express.static(path.join(__dirname, "/app/public/"))); 
app.get("/overview", function(req, res) {  
    res.render('some-file');  
}); 

裏面的一些-file.ejs我有...

<img src="assets/images/picture.jpg"> 

但什麼does not工作是當我有第二個URL路徑。

app.get("/overview/specific", function(req, res) {  
    res.render('another-file');  
}); 

<img src="assets/images/picture.jpg"> 

在這個例子中,我試圖加載完全相同的圖像(在我的情況下,它的一面旗幟這就是每一個頁面上重複使用)。這給我一個錯誤,沒有找到圖像。我從控制檯錯誤中發現的是,圖像正在從localhost加載:3000/overview/assets/images/picture.jpg 我不明白爲什麼express會從第一個路徑加載圖像(在這種情況下概述)。概述不應該在路上! 任何人都可以幫我調試這個問題嗎?

在此先感謝

+0

也添加你的文件夾結構.. – gauravmehla

回答

3

嘗試使用/assets/images/picture.jpg

在路徑前添加/。無論你想picture.jpg只是通過這個絕對路徑

/app/public/assets/images/picture.jpg

現在:然後,它會採取/app/public/爲根,確保圖像將在。

+0

啊完美。這解決了它。非常感謝! –

0

我們提供動態的使用一種ExpressJS favicon的重定向,它工作得很好。

首先,我們檢索基於req.hostname快速查找內存中的站點對象,然後發送這樣的響應:

res.redirect(site.favicon); 

的圖標變量可能是我們的服務器上的靜態資產,或資產在另一臺服務器上。我們的前端代碼只是調用/ api/resources/favicon,它會收到正確的鏈接。