我看到一些非常奇怪的行为,其中我的一些文件正确地由我的 Express/Node 服务器返回(使用express.static()
),但不包括子目录中的文件。令人沮丧的是,它在本地使用 Node 或 foreman 工作得很好,但在 Heroku 上却不起作用。这个要点 https://gist.github.com/jeffthink/6927836这里有主要文件,我的应用程序结构如下所示:
-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 层
我尝试了很多不同的配置,包括这个堆栈溢出答案 https://stackoverflow.com/questions/17212624/deploy-nodejs-on-heroku-fails-serving-static-files-located-in-subfolders。我必须错过一些简单的东西。谢谢您的帮助。
UPDATE:
当我在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
确保您的目录的子目录已添加到您的 Git 存储库中。
您可以使用heroku run 'ls ~'
帮助调试问题(通过观察测功机上的文件)。
输入绝对路径并不能解决我的问题。你的.gitignore
可能会排除它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)