如何在Express应用程序中添加正确的静态方法?

时间:2017-02-26 19:44:59

标签: node.js express node-modules

我的app.js文件很重要:

    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?

1 个答案:

答案 0 :(得分:1)

src="images/wow.png"文件中,您有/user/user1,这是图像资源的相对路径。因此,当您转到/user时,它只会将src="images/wow.png"添加到您的图片资源路径中。

而不是src="/public/images/wow.png"尝试src="/images/wow.png"[tool:pytest]