- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我使用 Node js、express、webpack、react 和 socket io 制作了一个 Web 应用程序,我想将其部署在 heroku 上。当我尝试时,我可以访问该网站,但它显示一条错误消息:
Cannot GET /
这是我的配置:
"scripts": {
"start": "npm run dev",
"build": "webpack --mode production",
"client": "webpack-dev-server --mode development --devtool inline-source-map --hot",
"server": "nodemon src/server/index.js",
"dev": "concurrently \"npm run server\" \"npm run client\"",
"heroku-postbuild": "NPM_CONFIG_PRODUCTION=false npm install && npm run build"
}
在我更改之前,启动脚本是 node src/server/index.js
,因为我运行 npm run dev
在本地启动我的应用程序。
这是我的存储库:http://git.kamal-allali.fr/kamal/prog_web_5a
这里是 Heroku 链接:https://fast-earth-60949.herokuapp.com
这里是 Heroku 日志:
2018-11-05T21:42:44.984679+00:00 app[web.1]: 1 Built at: 11/05/2018 9:42:44 PM
2018-11-05T21:42:44.984681+00:00 app[web.1]: 1 Asset
Size Chunks Chunk Names2018-11-05T21:42:44.984683+00:00 app[web.1]: 1 bundle.js 7.42 MiB main [emitted] main
2018-11-05T21:42:44.984685+00:00 app[web.1]: 1 favicon.ico 40.4 KiB [emitted]
2018-11-05T21:42:44.984686+00:00 app[web.1]: 1 index.html 717 bytes [emitted]
2018-11-05T21:42:44.984688+00:00 app[web.1]: 1 Entrypoint main = bundle.js
2018-11-05T21:42:44.984710+00:00 app[web.1]: 1 [./node_modules/loglevel/lib/loglevel.js] 7.68 KiB {main} [built]
2018-11-05T21:42:44.984712+00:00 app[web.1]: 1 [./node_modules/react-dom/index.js] 1.33 KiB {main} [built]
2018-11-05T21:42:44.984713+00:00 app[web.1]: 1 [./node_modules/react/index.js] 190 bytes {main} [built] 2018-11-05T21:42:44.984715+00:00 app[web.1]: 1 [./node_modules/url/url.js] 22.8 KiB {main} [built]
2018-11-05T21:42:44.984718+00:00 app[web.1]: 1 [./node_modules/webpack-dev-server/client/index.js?http://localhost:3000] (webpack)-dev-server/client?http://localhost:3000 7.78 KiB {main} [built]
2018-11-05T21:42:44.984720+00:00 app[web.1]: 1 [./node_modules/webpack-dev-server/client/overlay.js] (webpack)-dev-server/client/overlay.js 3.58 KiB {main} [built]
2018-11-05T21:42:44.984723+00:00 app[web.1]: 1 [0] multi (webpack)-dev-server/client?http://localhost:3000 (webpack)/hot/dev-server.js ./src/client/index.js 52 bytes {main} [built]
2018-11-05T21:42:44.984724+00:00 app[web.1]: 1 [./node_modules/webpack-dev-server/client/socket.js] (webpack)-dev-server/client/socket.js 1.05 KiB {main} [built]
2018-11-05T21:42:44.984726+00:00 app[web.1]: 1 [./node_modules/webpack-dev-server/node_modules/strip-ansi/index.js] (webpack)-dev-server/node_modules/strip-ansi/index.js 161 bytes {main} [built]
2018-11-05T21:42:44.984728+00:00 app[web.1]: 1 [./node_modules/webpack/hot sync ^./log$] (webpack)/hot sync nonrecursive ^./log$ 170 bytes {main} [built]
2018-11-05T21:42:44.984730+00:00 app[web.1]: 1 [./node_modules/webpack/hot/dev-server.js] (webpack)/hot/dev-server.js 1.61 KiB {main} [built]
2018-11-05T21:42:44.984732+00:00 app[web.1]: 1 [./node_modules/webpack/hot/emitter.js] (webpack)/hot/emitter.js 75 bytes {main} [built]
2018-11-05T21:42:44.984733+00:00 app[web.1]: 1 [./node_modules/webpack/hot/log-apply-result.js] (webpack)/hot/log-apply-result.js 1.27 KiB {main} [built]
2018-11-05T21:42:44.984735+00:00 app[web.1]: 1 [./src/client/Layout.js] 4.33 KiB {main} [built]
2018-11-05T21:42:44.984736+00:00 app[web.1]: 1 [./src/client/index.js] 205 bytes {main} [built]
2018-11-05T21:42:44.984738+00:00 app[web.1]: 1 + 349 hidden modules
2018-11-05T21:42:44.984740+00:00 app[web.1]: 1 Child html-webpack-plugin for "index.html":
2018-11-05T21:42:44.984742+00:00 app[web.1]: 1 1 asset
2018-11-05T21:42:44.984743+00:00 app[web.1]: 1 Entrypoint undefined = index.html
2018-11-05T21:42:44.984745+00:00 app[web.1]: 1
[./node_modules/html-webpack-plugin/lib/loader.js!./public/index.html] 828 bytes {0} [built]2018-11-05T21:42:44.984746+00:00 app[web.1]: 1
[./node_modules/lodash/lodash.js] 527 KiB {0} [built]2018-11-05T21:42:44.984748+00:00 app[web.1]: 1
[./node_modules/webpack/buildin/global.js] (webpack)/buildin/global.js 489 bytes {0} [built]2018-11-05T21:42:44.984749+00:00 app[web.1]: 1
[./node_modules/webpack/buildin/module.js] (webpack)/buildin/module.js 497 bytes {0} [built]2018-11-05T21:42:44.984751+00:00 app[web.1]: 1 ℹ 「wdm」: Compiled successfully.
2018-11-05T22:16:20.551630+00:00 heroku[web.1]: Idling
2018-11-05T22:16:20.552092+00:00 heroku[web.1]: State changed from up to down
2018-11-05T22:16:21.411951+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2018-11-05T22:16:21.808625+00:00 heroku[web.1]: Process exited with status 143
2018-11-06T08:35:42.000000+00:00 app[api]: Build started by user kamal.allali@outlook.fr
2018-11-06T08:36:36.888512+00:00 heroku[web.1]: State changed from down to starting
2018-11-06T08:36:36.713630+00:00 app[api]: Deploy d62783d3 by user kamal.allali@outlook.fr
2018-11-06T08:36:36.713630+00:00 app[api]: Release v12 created by user kamal.allali@outlook.fr
2018-11-06T08:36:40.000000+00:00 app[api]: Build succeeded
2018-11-06T08:36:42.010068+00:00 heroku[web.1]: Starting process with command
npm start
2018-11-06T08:36:45.324322+00:00 app[web.1]:
2018-11-06T08:36:45.324353+00:00 app[web.1]: > projet-web-5a@1.0.0 start /app
2018-11-06T08:36:45.324355+00:00 app[web.1]: > npm run dev
2018-11-06T08:36:45.324356+00:00 app[web.1]:
2018-11-06T08:36:45.753063+00:00 app[web.1]:
2018-11-06T08:36:45.753112+00:00 app[web.1]: > projet-web-5a@1.0.0 dev /app
2018-11-06T08:36:45.753114+00:00 app[web.1]: > concurrently "npm run server" "npm run client"
2018-11-06T08:36:45.753116+00:00 app[web.1]:
2018-11-06T08:36:47.147860+00:00 app[web.1]: 1
2018-11-06T08:36:47.147877+00:00 app[web.1]: 1 > projet-web-5a@1.0.0 client /app
2018-11-06T08:36:47.147879+00:00 app[web.1]: 1 > webpack-dev-server --mode development --devtool inline-source-map --hot
2018-11-06T08:36:47.147881+00:00 app[web.1]: 1
2018-11-06T08:36:47.172481+00:00 app[web.1]: [0]
2018-11-06T08:36:47.172485+00:00 app[web.1]: [0] > projet-web-5a@1.0.0 server /app
2018-11-06T08:36:47.172487+00:00 app[web.1]: [0] > nodemon src/server/index.js
2018-11-06T08:36:47.172488+00:00 app[web.1]: [0]
2018-11-06T08:36:47.672353+00:00 app[web.1]: [0] [nodemon] 1.18.4
2018-11-06T08:36:47.673281+00:00 app[web.1]: [0] [nodemon] to restart at any time, enter
rs
2018-11-06T08:36:47.673747+00:00 app[web.1]: [0] [nodemon] watching: /app/src/server/**/*
2018-11-06T08:36:47.674424+00:00 app[web.1]: [0] [nodemon] starting
node src/server/index.js
2018-11-06T08:36:47.963706+00:00 app[web.1]: [0] Listening on port 45437
2018-11-06T08:36:48.299567+00:00 heroku[web.1]: State changed from starting to up
2018-11-06T08:36:48.679674+00:00 app[web.1]: 1 clean-webpack-plugin: /app/dist has been removed.
2018-11-06T08:36:48.905698+00:00 app[web.1]: 1 ℹ 「wds」: Project is running at http://localhost:3000/
2018-11-06T08:36:48.906031+00:00 app[web.1]: 1 ℹ 「wds」: webpack output is served from /
2018-11-06T08:36:48.956210+00:00 app[web.1]: 1 ⚠ 「wds」: Unable to open browser. If you are running in a headless environment, please do not use the --open flag
2018-11-06T08:36:55.276089+00:00 heroku[router]: at=info method=GET path="/" host=fast-earth-60949.herokuapp.com request_id=2474b83b-65ce-43b4-a54f-6851d5f55a7c fwd="78.112.168.129" dyno=web.1 connect=0ms service=9ms status=404 bytes=360 protocol=https
2018-11-06T08:36:57.303048+00:00 app[web.1]: 1 ℹ 「wdm」: Hash: 6de9947fac0c16b70883
2018-11-06T08:36:57.303058+00:00 app[web.1]: 1 Version: webpack 4.19.1
2018-11-06T08:36:57.303061+00:00 app[web.1]: 1 Time: 8512ms
2018-11-06T08:36:57.303063+00:00 app[web.1]: 1 Built at: 11/06/2018 8:36:57 AM
2018-11-06T08:36:57.303066+00:00 app[web.1]: 1 Asset
Size Chunks Chunk Names2018-11-06T08:36:57.303069+00:00 app[web.1]: 1 bundle.js 7.42 MiB main [emitted] main
2018-11-06T08:36:57.303071+00:00 app[web.1]: 1 favicon.ico 40.4 KiB [emitted]
2018-11-06T08:36:57.303073+00:00 app[web.1]: 1 index.html 717 bytes [emitted]
2018-11-06T08:36:57.303074+00:00 app[web.1]: 1 Entrypoint main = bundle.js
2018-11-06T08:36:57.303077+00:00 app[web.1]: 1 [./node_modules/loglevel/lib/loglevel.js] 7.68 KiB {main} [built]
2018-11-06T08:36:57.303078+00:00 app[web.1]: 1 [./node_modules/react-dom/index.js] 1.33 KiB {main} [built]
2018-11-06T08:36:57.303080+00:00 app[web.1]: 1 [./node_modules/react/index.js] 190 bytes {main} [built] 2018-11-06T08:36:57.303082+00:00 app[web.1]: 1 [./node_modules/url/url.js] 22.8 KiB {main} [built]
2018-11-06T08:36:57.303084+00:00 app[web.1]: 1 [./node_modules/webpack-dev-server/client/index.js?http://localhost:3000] (webpack)-dev-server/client?http://localhost:3000 7.78 KiB {main} [built]
2018-11-06T08:36:57.303087+00:00 app[web.1]: 1 [./node_modules/webpack-dev-server/client/overlay.js] (webpack)-dev-server/client/overlay.js 3.58 KiB {main} [built]
2018-11-06T08:36:57.303090+00:00 app[web.1]: 1 [0] multi (webpack)-dev-server/client?http://localhost:3000 (webpack)/hot/dev-server.js ./src/client/index.js 52 bytes {main} [built]
2018-11-06T08:36:57.303091+00:00 app[web.1]: 1 [./node_modules/webpack-dev-server/client/socket.js] (webpack)-dev-server/client/socket.js 1.05 KiB {main} [built]
2018-11-06T08:36:57.303093+00:00 app[web.1]: 1 [./node_modules/webpack-dev-server/node_modules/strip-ansi/index.js] (webpack)-dev-server/node_modules/strip-ansi/index.js 161 bytes {main} [built]
2018-11-06T08:36:57.303095+00:00 app[web.1]: 1 [./node_modules/webpack/hot sync ^./log$] (webpack)/hot sync nonrecursive ^./log$ 170 bytes {main} [built]
2018-11-06T08:36:57.303099+00:00 app[web.1]: 1 [./node_modules/webpack/hot/dev-server.js] (webpack)/hot/dev-server.js 1.61 KiB {main} [built]
2018-11-06T08:36:57.303100+00:00 app[web.1]: 1 [./node_modules/webpack/hot/emitter.js] (webpack)/hot/emitter.js 75 bytes {main} [built]
2018-11-06T08:36:57.303102+00:00 app[web.1]: 1 [./node_modules/webpack/hot/log-apply-result.js] (webpack)/hot/log-apply-result.js 1.27 KiB {main} [built]
2018-11-06T08:36:57.303104+00:00 app[web.1]: 1 [./src/client/Layout.js] 4.33 KiB {main} [built]
2018-11-06T08:36:57.303106+00:00 app[web.1]: 1 [./src/client/index.js] 205 bytes {main} [built]
2018-11-06T08:36:57.303108+00:00 app[web.1]: 1 + 349 hidden modules
2018-11-06T08:36:57.303109+00:00 app[web.1]: 1 Child html-webpack-plugin for "index.html":
2018-11-06T08:36:57.303111+00:00 app[web.1]: 1 1 asset
2018-11-06T08:36:57.303113+00:00 app[web.1]: 1 Entrypoint undefined = index.html
2018-11-06T08:36:57.303115+00:00 app[web.1]: 1
[./node_modules/html-webpack-plugin/lib/loader.js!./public/index.html] 828 bytes {0} [built]2018-11-06T08:36:57.303116+00:00 app[web.1]: 1
[./node_modules/lodash/lodash.js] 527 KiB {0} [built]2018-11-06T08:36:57.303118+00:00 app[web.1]: 1
[./node_modules/webpack/buildin/global.js] (webpack)/buildin/global.js 489 bytes {0} [built]2018-11-06T08:36:57.303119+00:00 app[web.1]: 1
[./node_modules/webpack/buildin/module.js] (webpack)/buildin/module.js 497 bytes {0} [built]2018-11-06T08:36:57.303457+00:00 app[web.1]: 1 ℹ 「wdm」: Compiled successfully.
最佳答案
您需要将 Node 版本添加到 package.json
中。
"engines": {
"node": "10.11.0"
}
我在评论中回答了,但这不是最好的方法,所以我会在这里编辑。
由于您正在尝试提供静态内容,请尝试使用静态中间件。
删除
app.get('*', (req,res) =>{
res.sendFile(path.join(__dirname,'../../public/index.html'));
});
并添加
app.use(express.static(path.join(__dirname,'../../public')));
第二次编辑。
您需要构建项目并提供文件夹,通常是 dist 或 build 文件夹。
要做到这一点,您有几个选择,其中之一是在将更改发布到 heroku 之前构建项目,但这可能会有点乏味。
另一个选项是执行安装后脚本,以便在 heroku 执行 npm install 后构建项目,并使用最新更改创建 dist 或 build 文件夹。
"postinstall": "npm run build"
如果您不希望每次执行 npm install 时都运行脚本,您可以在 heroku 中使用 if-env 和环境变量。
"postinstall": "if-env NODE_ENV=production && npm run build"
一旦您知道构建时正在创建哪个文件夹,请更改下一行。
app.use(express.static(path.join(__dirname,'path to the folder with the prod build')));
关于node.js - 在heroku上部署Nodejs+Express+React+Webpack应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53168405/
我正在学习构建单页应用程序 (SPA) 所需的所有技术。总而言之,我想将我的应用程序实现为单独的层,其中前端仅使用 API Web 服务(json 通过 socket.io)与后端通信。前端基本上是
当我看到存储在我的数据库中的日期时。 这是 正常 。日期和时间就是这样。 但是当我运行 get 请求来获取数据时。 此格式与存储在数据库 中的格式不同。为什么会发生这种情况? 最佳答案 我认为您可以将
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我正在尝试使用backbone.js 实现一些代码 和 hogan.js (http://twitter.github.com/hogan.js/) Hogan.js was developed ag
我正在使用 Backbone.js、Node.js 和 Express.js 制作一个 Web 应用程序,并且想要添加用户功能(登录、注销、配置文件、显示内容与该用户相关)。我打算使用 Passpor
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 8 年前。 Improve this ques
我尝试在 NodeJS 中加载数据,然后将其传递给 ExpressJS 以在浏览器中呈现 d3 图表。 我知道我可以通过这种方式加载数据 - https://github.com/mbostock/q
在 node.js 中,我似乎遇到了相同的 3 个文件名来描述应用程序的主要入口点: 使用 express-generator 包时,会创建一个 app.js 文件作为生成应用的主要入口点。 通过 n
最近,我有机会观看了 john papa 关于构建单页应用程序的精彩类(class)。我会喜欢的。它涉及服务器端和客户端应用程序的方方面面。 我更喜欢客户端。在他的实现过程中,papa先生在客户端有类
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我是一个图形新手,需要帮助了解各种 javascript 2D 库的功能。 . . 我从 Pixi.js 中得到了什么,而我没有从 Konva 等基于 Canvas 的库中得到什么? 我从 Konva
我正在尝试将一些 LESS 代码(通过 ember-cli-less)构建到 CSS 文件中。 1) https://almsaeedstudio.com/ AdminLTE LESS 文件2) Bo
尝试查看 Express Passport 中所有登录用户的所有 session ,并希望能够查看当前登录的用户。最好和最快的方法是什么? 我在想也许我可以在登录时执行此操作并将用户模型数据库“在线”
我有一个 React 应用程序,但我需要在组件加载完成后运行一些客户端 js。一旦渲染函数完成并加载,运行与 DOM 交互的 js 的最佳方式是什么,例如 $('div').mixItUp() 。对
请告诉我如何使用bodyparser.raw()将文件上传到express.js服务器 客户端 // ... onFilePicked(file) { const url = 'upload/a
我正在尝试从 Grunt 迁移到 Gulp。这个项目在 Grunt 下运行得很好,所以我一定是在 Gulp 中做错了什么。 除脚本外,所有其他任务均有效。我现在厌倦了添加和注释部分。 我不断收到与意外
我正在尝试更改我的网站名称。找不到可以设置标题或应用程序名称的位置。 最佳答案 您可以在 config/ 目录中创建任何文件,例如 config/app.js 包含如下内容: module.expor
经过多年的服务器端 PHP/MySQL 开发,我正在尝试探索用于构建现代 Web 应用程序的新技术。 我正在尝试对所有 JavaScript 内容进行排序,如果我理解得很好,一个有效的解决方案可以是服
我是 Nodejs 的新手。我在 route 目录中有一个 app.js 和一个 index.js。我有一个 app.use(multer....)。我还定义了 app.post('filter-re
我正在使用 angular-seed用于构建我的应用程序的模板。最初,我将所有 JavaScript 代码放入一个文件 main.js。该文件包含我的模块声明、 Controller 、指令、过滤器和
我是一名优秀的程序员,十分优秀!