11

我对 node 和 heroku 很陌生,我怀疑这是某种简单的权限问题等,但我似乎无法找到它。

我的 web.js 文件所在的根目录下一级的子目录中有几个纯 JavaScript 文件。我的 web.js 文件中有一行来指定目录

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

如果我使用 Heroku Foreman 在本地运行我的应用程序,我会在运行以下 curl 命令时得到预期的 js 响应

 curl localhost:5000/heatcanvas/heatcanvas.js

但是,当我推送到 Heroku 并在浏览器中点击相应的实时网址时

www.example.com/heatcanvas/heatcanvas.js

我收到以下信息:

 Cannot GET /heatcanvas/heatcanvas.js

如果我检查 Firebug 和/或 Heroku 日志,我会发现这些文件实际上出现了 404 错误,即使路径应该与本地正在执行的操作相匹配。还值得一提的是,第三方 javascript 也很好,只有当 script 标签的 src 属性指向我的站点时,才会出现问题。我需要做什么才能使我的脚本可用?

4

1 回答 1

7

我建议您使用process.cwd()值来获取特定目录

process.env.PWD = process.cwd()

在你的web.js的最开始

让您轻松访问文件。

你可以做

app.use('/heatcanvas',express.static(process.env.PWD+'/heatcanvas'));

而不是使用

__dirname

警告:确保在 web.js 的根目录执行 web.js(Heroku web.js 是这样执行的)

于 2012-07-16T14:00:47.137 回答