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

使用Heroku部署Node.js应用程序 - 启动脚本

Discord.js 机器人 | Heroku 部署错误 | npm 错误!缺少脚本:开始

将 node.js 应用程序部署到 Heroku 时如何执行自定义构建脚本

text 允许您使用seedDB.js脚本在Heroku上播种远程数据库...

NodeJS 应用程序:尝试链接时脚本/main.js 出现错误 404