【问题标题】:How to serve static files in ExpressJS when you are routing a deep directory path?路由深层目录路径时如何在 ExpressJS 中提供静态文件?
【发布时间】:2016-11-07 23:13:54
【问题描述】:

我想这个标题可能会令人困惑。我不知道该怎么说,但说我有一个目录如下:

/
   app.js
   /static
      /styles
         main.css
   /views
      index.html
      /files
         1.html
         2.html

如果我提供 1.html 并在其中包含,我有一个 css 文件作为

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

这不会加载 css 文件。它在我假设的索引页面上运行良好,因为它直接位于视图文件夹中。因为我正在尝试访问文件夹中的某些内容,所以它不起作用。有人能指出我正确的方向吗?

还要注意我已经设置了

server.set('views', __dirname + '/views')

server.use('/static', express.static(__dirname + '/static'));

【问题讨论】:

  • 对于固定位置的资源,使用绝对路径(以/开头的路径)在网页中引用它们。然后,无论从何处提供主机网页,您都可以以相同的方式访问它们。所以,既然您已经在使用express.static(__dirname + '/static'),那么只需使用&lt;link rel="stylesheet" type="text/css" href="/styles/main.css"&gt;。//static 部分已经在您的express.static() 处理程序中。

标签: node.js express routing static-files


【解决方案1】:

尝试从 href 属性中删除 static

<link rel="stylesheet" type="text/css" href="/styles/main.css">

并将服务配置的静态文件更改为

server.use(express.static(path.join(__dirname, 'static')));

【讨论】:

    猜你喜欢
    • 2012-04-27
    • 2021-03-14
    • 2016-03-03
    • 2019-01-23
    • 1970-01-01
    • 2020-07-07
    • 2020-08-03
    • 1970-01-01
    • 2017-08-16
    相关资源
    最近更新 更多