javascript - Heroku(Cedar) + Node + Express + Jade 子目录中的客户端 javascript 文件在本地与 foreman+curl 一起工作,但在推送到 Heroku 时不能

标签 javascript node.js heroku express pug

我对 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 属性指向我的站点时,才会出现问题。我需要做什么才能让我的脚本可用?

最佳答案

我建议你使用 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就是这样执行的)

关于javascript - Heroku(Cedar) + Node + Express + Jade 子目录中的客户端 javascript 文件在本地与 foreman+curl 一起工作,但在推送到 Heroku 时不能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10367600/

相关文章:

java - Heroku - 我部署的 Spring MVC 项目不起作用

javascript - 使用 javascript 或 jquery 在一页上打印一行

javascript - 表没有列。 Json数据

node.js - npm 在每次安装/卸载/ls 时抛出 ENOENT 警告

javascript - 如何使用基于 promise 的 node.js 编码区分编程错误和操作错误?

git - 错误 : src refspec master does not match any. 无法将某些引用推送到 heroku

javascript - jQuery 动态设置按钮元素事件和禁用

javascript - 为什么 Javascript 小书签包含在闭包中?

javascript - 如何实现 node.js WebSocket 支持?

ruby-on-rails - 在 Heroku 上使用 Postmark API 发送 Rails 电子邮件——连接被对等方重置