2017-10-18 145 views
3

我目前正在嘗試使用Pug(以前稱爲Jade)和Express設置密碼重置流程。爲什麼我的express express.get URL有多條路徑只能渲染文本?

由於某些原因,GET請求(包括帶有多個路徑的URL)將僅使用文本呈現我的帕格視圖文件。沒有加載圖像或樣式。

例如:

app.get('/example', (req, res) => { 
    res.render('test') 
}) 

將呈現風格和圖片,完美的測試文件。但是:

app.get('/example/test', (req, res) => { 
    res.render('test') 
}) 

將僅使用文本呈現測試文件。圖像和風格缺失。

任何想法可能會導致此問題?

+1

你的圖片網址喜歡'images/one.jpg'等嗎?如果是這樣,當你進入'/ example/test'網址將變成'/ example/images/one.jpg' ...嘗試製作你的網址絕對是'/ images/one.jpg'等。 – Keith

+0

哈哈沒辦法,你說得對。謝謝! – Leafyshark

回答

1
  1. 在您的server.js中加上app.use(express.static(__dirname+"/public"));
  2. 在您的workspace上創建一個名爲public的新文件夾,其中您的server.js存在。
  3. 現在在public內創建stylesimages文件夾,並將您的css文件和圖像文件放入每個文件夾中。
  4. 例如,將您的css路徑test.html更改爲/styles/test.css。你現在應該有它的工作。

express定義的靜態方法將尋找public文件夾的絕對根路徑,現在不管有多少路線層調用你就可以訪問你的stylesimages文件夾,而不需要回溯的你的css/images文件的相對路徑。