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

How to add correct way to my static in Express app?

我的 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;

控制台给我:

那么为什么我对两个页面都有相同的路由,但其中一个工作正常,但第二个为静态文件提供 404?

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

而不是 src="images/wow.png" 尝试输入 src="/public/images/wow.png"src="/images/wow.png".