gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 23:26:27 26 4
gpt4 key购买 nike

我对 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com