【问题标题】:Subdirectories not being served with express.static in herokuheroku 中没有使用 express.static 提供子目录
【发布时间】:2013-10-18 23:34:07
【问题描述】:

我看到了一些非常奇怪的行为,其中我的一些文件被我的 express/node 服务器正确返回(使用express.static()),但不是子目录中的文件。令人沮丧的是,它在本地使用 node 或 foreman 可以正常工作,但不能在 heroku 上工作。 This gist 这里有主要文件,我的应用程序结构如下所示:

-app
    - index.html
    - img/
        - base.png
        - sub/
            - sub.png
    - scripts
        - base.js
        - sub/
            - sub.js
    - css
        - base.css
        - sub/
            - sub.css
- server
    - app.js

index.html 和 base.* 文件都可以正常加载,只是 sub.* 文件会出现 404。express.static 会深入 1 级,但不会 2 级,这似乎很奇怪

我尝试了许多不同的配置,包括这个stackoverflow answer。我必须缺少一些简单的东西。感谢您的帮助。

更新:

当我在 heroku 上的服务器启动时 console.log 以下内容时,我得到:

  • path.join(__dirname, '../app') = /app
  • path.join(__dirname, '/../app') = /app/app
  • path.normalize(path.join(__dirname, '../app')) = /app/app
  • path.join(process.cwd(), '../app') = /app/app

【问题讨论】:

    标签: node.js heroku express static-files


    【解决方案1】:

    确保您的目录的子目录已添加到您的 Git 存储库中。

    您可以使用heroku run 'ls ~' 帮助调试问题(通过观察测功机上的文件)。

    放置绝对路径并没有为我解决问题。您的.gitignore 可能已将其排除在外。

    【讨论】:

      【解决方案2】:

      尝试将您的静态目录更改为:

      app.use(express.static(path.join(__dirname, '/../app'), { maxAge: 86400000 }));
      

      app.use(express.static(path.normalize(path.join(__dirname, '../app')), { maxAge: 86400000 }));
      

      【讨论】:

      • 为我工作!!谢谢
      【解决方案3】:

      添加 {{__dirname}}

      <link href="{{__dirname}}/stylesheets/style.css" type="text/css" rel="stylesheet" media="screen,projection"/>

      在您的 layout.hbs 或 layout.jde 中

      【讨论】:

        【解决方案4】:

        我刚刚遇到了同样的问题,并且我已经阅读了所有不同的答案,其中一些可能很重要,但最后,这是我在开始提供静态内容之后所做的更改.

        CALENDARSPATH = path.join(process.env.PWD, 'calendars');
        

        ...

        -app.use(express.static(CALENDARSPATH, { maxAge: 86400000 }));
        +app.use('/calendars', express.static(CALENDARSPATH, { maxAge: 86400000 }));
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-08-13
          • 1970-01-01
          • 2016-09-29
          • 1970-01-01
          相关资源
          最近更新 更多