Heroku没有加载js脚本404
Posted
技术标签:
【中文标题】Heroku没有加载js脚本404【英文标题】:Heroku not loading js script 404 【发布时间】:2015-11-15 17:01:21 【问题描述】:我正在尝试在 Heroku 上使用 MEAN 构建我的第一个 Web 应用程序。我按照他们的指南运行示例应用程序。然后我下载了示例应用程序代码并对其进行了修改以加载登录页面。不幸的是,我无法加载我的 app.js 文件。这是角脚本。在主目录中,我有运行 express 的 index.js。无论如何,我能够加载 .ejs .css 和 img 文件,但这个脚本不会。我被困住了。我需要能够克服这个问题才能开始学习堆栈。
脚本与加载的其他文件位于公共目录中。代码看起来不错?不知道为什么我在脚本上得到 404。
非常感谢任何帮助!
var express = require('express');
var app = express();
app.set('port', (process.env.PORT || 5000));
app.use(express.static(__dirname + '/public'));
// views is directory for all template files
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.get('/', function(request, response)
response.render('pages/index');
);
app.listen(app.get('port'), function()
console.log('Node app is running on port', app.get('port'));
);
<script src="/js/app.js"></script>
原来更改没有被推送到服务器。就是这样!
【问题讨论】:
【参考方案1】:您只需将app.js
移至公用文件夹即可。 index.js 中的这一行 app.use(express.static(__dirname + '/public'));
告诉 express 从 /public
文件夹中提供静态资产。除非您将其公开,否则项目中的所有其他内容都将“隐藏”在服务器上。
您可以在 public 创建一个 js 文件夹并将 app.js 移动到那里。然后将 index.ejs 中的引用从 src="/app.js"
更改为 src="/js/app.js"。
【讨论】:
谢谢瑞恩。令人困惑的是,它与正在加载的其他文件位于公用文件夹中。我将更新帖子以使其更加清晰。 您确定您的更改正在部署到 heroku 吗?当您的回购出现问题时,我只在根文件夹中看到了 app.js。尝试更改 index.ejs 中的一些文本并进行部署以确保它能够接受您的更改。 即使是现在,如果您转到 github 上的存储库,我也看不到 app.js。确保使用git add public/js/app.js
将其添加到 git,然后提交并部署。见devcenter.heroku.com/articles/git
是的,我将其更改为 login.js 以确保将更改推送到 heroku/github。原来他们不是!所以现在就问题而言一切都很好:) 现在我只需要弄清楚如何更好地将这些更改推送到服务器。我一直在通过 github 对其进行更新,但是更改生效需要很长时间。我猜必须弄清楚如何用命令行做得更好。对于网页设计师来说有点棘手:)
啊,看来我弄明白了 Windows 终端并直接推送到 heroku。快乐的日子:D 一切顺利,瑞恩以上是关于Heroku没有加载js脚本404的主要内容,如果未能解决你的问题,请参考以下文章
部署到 heroku 时出现错误“无法加载资源 404”bundle.js
Discord.js 机器人 | Heroku 部署错误 | npm 错误!缺少脚本:开始
将 node.js 应用程序部署到 Heroku 时如何执行自定义构建脚本