【问题标题】:NodeJS : Access static ressources from third level routes in ExpressNode JS:从 Express 中的第三级路由访问静态资源
【发布时间】:2017-06-09 17:04:10
【问题描述】:

我无法从 /admin/item/[id] 路由访问我的 /public 文件夹资源。

这是我的文件结构:

  • app.js
  • 管理员
    • index.js
  • 公开
    • img
    • js
    • CSS
  • 观看次数

/app.js

app.use(express.static(path.join(__dirname, '/public')));

app.get('/', (req, res) => {
    //Access OK
    res.render('index');
});
app.use('/admin', adminRouter);

/admin/index.js

router.use(express.static(path.join(__dirname, '../public')));
router.get('/upload/', (req, res) => {
        //Access OK
    res.render('admin/upload');
});
router.get('/album/:albumid', (req, res) => {
    //No access
    res.render('admin/album');
}):

有没有办法单独设置路线?这是一个好习惯吗? 或者有没有办法使用 express.static 设置一般路径?

谢谢大家

【问题讨论】:

  • /admin/item/[id] ??你能澄清一下吗?我没有看到你的端点
  • 我正在传递我要编辑的专辑的 ID。例如:/album/id_of_the_album。就像在这篇文章中所做的那样 => stackoverflow.com/questions/17398766/…
  • 当您说“访问公用文件夹”时,您的意思是从 UI 吗?我看到你正在渲染一个视图
  • 当尝试从浏览器访问我的 js 或 CSS 文件时,我得到了 à 404。路径如下所示:localhost:3000/admin/album/css/style.css 而不是去进入我的项目文件夹根目录中的公用文件夹。

标签: javascript node.js express routing


【解决方案1】:

为静态资源定义相对路径,例如

app.use('/static', express.static(path.join(__dirname, '../public')));

然后在你的 html 中。

<link rel="stylesheet" href="/static/css/style.css" type="text/css">

O 但是你有静态文件夹结构。

【讨论】:

  • 而且这个相对路径对于所有路线甚至第三级的第二级都是相同的?
  • 请注意斜线 href="/static/,它与您的域相关,无论您在哪里端点。
  • 非常感谢
猜你喜欢
  • 2016-07-23
  • 1970-01-01
  • 2014-03-04
  • 1970-01-01
  • 1970-01-01
  • 2020-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多