当前位置: 首页 > 知识库问答 >
问题:

将一个javascript应用程序部署到heroku后,该脚本不起作用

佟高澹
2023-03-14

我创建了一个带有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 安装 mojs”,并且像往常一样,

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

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

共有1个答案

西门正平
2023-03-14

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

如果您无法使用以下方式启动应用:

PORT=4446 npm start

然后访问它:

  • http://localhost:4446/

那你就不能在Heroku上主持了。(我假设您使用的是问题中标签所指示的Node。)重要的是,您的应用程序需要实际使用< code>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上发布了一个完整的解决方案,甚至还有一个Deploy to Heroku按钮:

    < Li > https://github . com/RSP/node-live-color

这是为这个答案创建的一个示例:

  • 使用Express获取数据/将数据写入localhost

在那里你可以找到更多关于为什么它是这样写的细节。

 类似资料:
  • 问题内容: 我正在尝试在Heroku上使用Flask开发我的第一个“大型”应用程序,并尝试将此处的基本教程与以下说明结合:https : //devcenter.heroku.com/articles/python与以下说明:http:// flask.pocoo.org/docs/patterns/packages/#larger- applications。它在本地与“先行启动”一起工作,但是

  • 我试图将Spring Boot应用程序部署到Heroku,但我无法做到这一点。我的应用程序会自动检测为"heroku-maven-plugin",但我想将其部署为Java应用程序。 我怎样才能做到这一点?

  • 我有一个Spring-Boot应用程序,我正在Heroku上托管,很快就会开始生产。目前我正在使用Heroku的免费层版本,但将购买标准付费层之前生产。 我面临的问题是,当我的应用程序与所有依赖项打包时,其jar大小超过200+M。 我已经尝试了两种部署方式(现在两种方式都可以使用) 1)使用Heroku maven插件 2)从Git hub和Git-LFS(托管jar文件,因为GitHub不允许

  • [错误]无法执行目标组织。阿帕奇。专家插件:maven编译器插件:3.8。1:在project Divi up后端上编译(默认编译):编译时出现致命错误:目标版本无效:15- 我得到了上面的错误,有人知道为什么会这样吗?

  • 我已经构建了一个Springboot应用程序,其中包括AngLuar5。我有一个gradle构建脚本,它将angular文件加载到我的springboot项目中,这些文件位于springboot项目的resources/static下。当我启动我的应用程序时,angular的路由不再工作,我得到了 错误:无法匹配任何路由。URL段:“访问” 我的项目结构: 如果我打字 www.mysite.com

  • 我有几个小反应网络应用程序,我已经做了,我试图部署到heroku。我通过youtube视频找到了这个https://github.com/mars/create-react-app-buildpack,据说这是/是一个简单的部署方法。作者列出了几个步骤(前两个不适用): git初始化 heroku创建$APP_NAME--Buildpackhttps://github.com/mars/creat