【问题标题】:The script doesn't work after deploying a javascript app to heroku将 javascript 应用程序部署到 heroku 后,该脚本不起作用
【发布时间】:2017-12-18 11:09:13
【问题描述】:

我用 mojs 创建了一个简单的 javascript 应用程序,一个动画库,并希望将它部署到 heroku。首先,我尝试“heroku create”等并将原始应用程序部署到heroku - 该应用程序可以访问,但脚本不起作用。其次,我尝试通过插入脚本引导标记来更改我按照 heroku 网站上的 Node.js 教程制作的应用程序

   <script src="http://cdn.jsdelivr.net/mojs/latest/mo.min.js"></script>
   <script src="myburstscript.js"></script>

将我制作的脚本复制到此应用的文件夹中

var myBurst = new mojs.Burst({

    count:10, 
    radius: {0 :150},
    angle: {0 : 180},
    children : {
      //fill:{'red' : 'blue'},
      fill: ['red', 'purple', 'blue', 'violet'],
      duration : 1000, 
      radius: 10,
      shape: 'polygon',
      delay: 'stagger(50)'
}

});

document.addEventListener('click', function(e) {
   myBurst.replay();

 });

然后运行“npm install mojs”,然后像往常一样,

 git add .
 git commit -m "somedumbsh*t"
 git push heroku master

但它没有播放它在我的本地主机上播放的动画。日志显示没有错误。其余的,页面的 html 部分,工作正常。为什么?

【问题讨论】:

    标签: javascript html node.js animation heroku


    【解决方案1】:

    Heroku 需要一些服务器,而不仅仅是客户端代码。

    如果您无法启动您的应用程序:

    PORT=4446 npm start
    

    然后访问它:

    那么您将无法在 Heroku 上托管它。 (我假设您正在使用问题中的标签所指示的 Node。)重要的是,您的应用程序需要实际使用 PORT 环境变量中提供的端口号,而不仅仅是硬编码的端口号。

    例如,如果您将所有静态文件(HTML、客户端 JavaScript、CSS、图像等)放在名为 html 的目录中,那么您可以使用这样的简单服务器,例如叫server.js:

    'use strict';
    
    const path = require('path');
    const express = require('express');
    
    const app = express();
    
    const port = process.env.PORT || 3338;
    
    app.use('/', express.static(path.join(__dirname, 'html')));
    
    app.listen(port, () => console.log(`Listening on http://localhost:${port}/`));
    

    例如package.json:

    {
      "name": "your-name",
      "version": "0.0.0",
      "description": "Your description",
      "scripts": {
        "start": "node server.js",
      },
      "author": "Your details",
      "license": "MIT",
      "dependencies": {
        "express": "^4.15.2",
      }
    }
    

    另请参阅我在 GitHub 上发布的这个示例,以获得一个完整的解决方案,它甚至有一个部署到 Heroku 按钮:

    这是为此答案创建的示例:

    您可以在哪里找到更多关于为什么会这样写的详细信息。

    【讨论】:

    • 我可以访问它,我可以部署它。唯一的问题是我的 mojs 脚本没有运行
    • @NiHao92 “脚本无法运行”不足以让任何人告诉你出了什么问题。是否已加载 HTML 页面?控制台中是否有任何错误?网络连接中是否有任何失败的请求? mo.min.js 加载了吗?是否加载了 myburstscript.js?从 heroku 提供的 myburstscript.js 是否包含它应该包含的内容?它有正确的内容类型吗?没有CORS问题吗?简单的“不运行”真的没有任何意义。如果您希望有人帮助您,则需要对其进行适当的调查。
    • 日志显示没有错误。 html页面正常加载。至于您回复中的其他问题 - 如何解决?
    猜你喜欢
    • 1970-01-01
    • 2013-08-08
    • 2021-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-28
    • 2017-04-09
    • 2015-07-29
    相关资源
    最近更新 更多