【问题标题】:Heroku not loading js script 404Heroku没有加载js脚本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>

原来更改没有被推送到服务器。就是这样!

【问题讨论】:

    标签: javascript angularjs node.js heroku express


    【解决方案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 一切顺利,瑞恩
    猜你喜欢
    • 2018-11-15
    • 2012-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-23
    • 2018-02-26
    • 2016-07-09
    相关资源
    最近更新 更多