繁体   English   中英

这是使用express.static的唯一方法吗?

[英]is it the only way to use express.static?

我正在开发如下的网站

webpage
    -app
        -routers
            -photo.js
    -public
        -css
            -photo.css
        -views
            -photo.ejs
    -server.js

当我连接到本地主机:3000 /照片我没有问题。 但是,当我连接到localhost:3000 / photo / hero时,我无法得到CSS,所以我添加了这三行

app.use('/photo/4din2d',express.static(__dirname + '/public'));
app.use('/photo/tree',express.static(__dirname + '/public'));
app.use('/photo/hero',express.static(__dirname + '/public'));

这是问题,我将添加更多类别,例如“ hero,tree,4din2d”,并且我认为每次添加express.static都不是一个好方法。 请给我正确的方法。

photo.js

router.get('/', (req,res)=>{ res.render('photo'); }); router.get('/:id',(req,res)=>{ var category = req.params.id; res.render('photo'); });

photo.ejs

    <link rel="stylesheet" href="./css/photo.css">

server.js

    app.use(express.static(__dirname + '/public'));
    app.use('/photo',express.static(__dirname + '/public'));
    app.use('/photo/4din2d',express.static(__dirname + '/public'));
    app.use('/photo/tree',express.static(__dirname + '/public'));
    app.use('/photo/hero',express.static(__dirname + '/public'));

    var photo = require('./app/routers/photo.js');
    app.use('/photo',photo);

server.js中 ,您只需要一个静态目录public

app.use(express.static(__dirname + '/public'))

然后在photo.ejs中 ,应该相对于根( / )而不是相对于当前路径( ./ )引用资产:

<link rel="stylesheet" href="/css/photo.css">

我希望这有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM