2017-02-26 39 views
0

從我的app.js文件切記:如何在Express應用程序中添加正確的方法到我的靜態?

var express = require('express'); 
    var profile = require('./controllers/profile-controller'); //require my controller (profile-controller.js) 
    app.use(express.static(path.join(__dirname, 'public'))); 
    app.use('/user', profile); 

當我去「mysite.com/user」 - 它工作正常,但是當我去「mysite.com/user/user1」,我的CSS和圖像未加載。這裏是我的控制文件:

var express = require('express'); 
var router = express.Router(); 

// route for www.mysite.com/user 
router.get('/', function(req, res, next) { 
    res.render('profile',{ title: 'Profile' }); 

}); 
// route for www.mysite.com/user/user1 
router.get('/:id([A-Za-z0-9_]{5})', function(req, res, next) { 
    var id = req.params.id; 
    res.render('profile',{ title: 'Profile' }); 
}); 

module.exports = router; 

控制檯給我說:enter image description here

那麼,爲什麼我有兩個頁面相同的路線,但他們中的一個運作良好,但第二次給404對靜態文件?

+0

您可以在附加的圖像上看到它。當你轉到'/ user'時,它會從'/ img/...'加載圖像。但是當你進入'/ user/user1'時,圖像從'/ user/img/...'加載。檢查您的資源如何被引用。 – eminlala

+0

@ ex0dm3nt但如何解決它?我正在嘗試不同的方式,但無法修復它... –

+0

請問您還可以添加該「配置文件」模板的html文件嗎?你有沒有嘗試把整個路徑放進去,比如'res.render('/ templates/profile',{title:'Profile'});'或者文件路徑是不是該文件? – eminlala

回答

1

在您的index.hbs文件中,您有src="images/wow.png",它是圖像資源的相對路徑。因此,當您轉到/user/user1時,它只會將/user添加到您的圖像資源路徑中。

而不是src="images/wow.png"嘗試把src="/public/images/wow.png"src="/images/wow.png"

相關問題