【问题标题】:Getting "Cannot GET /" when deploying to heroku, but no error message?部署到heroku时出现“无法获取/”,但没有错误消息?
【发布时间】:2017-07-08 09:52:21
【问题描述】:

之前,感谢suggestion,我能够解决我的 webpack 问题。但是,当我尝试部署我的 react 应用程序时,我没有收到任何错误,但是当我浏览到我部署的链接时出现“无法获取 /”。我尝试更改script,甚至将我的整个项目移动到public 文件夹。似乎没有什么对我有用。我在这个过程中缺少什么步骤?

我的项目目录如下:

|-node_modules
|-public
  |-app
  |-src
  |-webpack.config.js
|-package.json
|-Procfile
|-server.js

app 文件夹包含我的 html、css 和 main.js 文件。 src 文件夹包含我的组件。这是我当前的 package.json 文件:

{
  "name": "",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "serve": "webpack-dev-server"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "babel-core": "5.8.*",
    "babel-loader": "5.3.*",
    "express": "^4.14.1",
    "react": "^15.4.2",
    "react-dom": "^15.4.2",
    "webpack": "^1.14.0",
    "webpack-dev-server": "^2.3.0"
  }
}

这是我的 server.js:

var express = require('express');
var app = express();

app.use(express.static(__dirname + '/public'));

app.listen(process.env.PORT || 8080);

感谢您的帮助。谢谢。

【问题讨论】:

    标签: javascript heroku


    【解决方案1】:
    • 输入heroku logs,这样你可以更仔细地看到错误

    • 确保您的 Procfile 如下所示:web: webpack-dev-server

    • 您有路由文件夹吗?如果没有,请执行以下操作:创建一个路由文件夹,添加一个名为 index.js 的文件。在该文件中,添加:

        var express = require('express');  
        var router = express.Router();
    
        router.get('/', function(req, res, next) {  
              res.status(200).send("Hi, It works!")  
        });  
    
    • 在您的server.js 文件中添加
      var videos = require('./routes/index');
      app.use('/vids', videos);

    • 在本地进行测试,如果正常,再次部署到heroku。

    【讨论】:

    • 我尝试了你的建议,感觉离我越来越近了。首先,在 scripts 中,我必须这样做:** "scripts": {"scripts": {"start": "node ./bin/wwwr"}}**。如果我执行 ** "scripts": { "start": "node ./bin/www" }**,我会得到一个错误,我不确定为什么会这样。当我运行npm start 并浏览到 localhost:8080/app 时,我看到了我的项目的标题,但其余内容不存在。我总是运行webpack-dev-server 并转到浏览器,内容就在那里。我如何将webpack-dev-server 合并到启动中?
    • 我看到你正在使用 webpack-dev-serve。所以,把你的 package.json 留给 "scripts": { "serve": "webpack-dev-server"},这很好。并像往常一样开始您的项目。 (webpack-dev-serve) 在你的 Procfile 添加: web: webpack-dev-server 。看起来这就是你所缺少的。然后再次部署
    • 我对我的 Procfile 和 package.json 文件进行了调整,当我尝试部署它时,当我浏览到已部署的链接时出现 应用程序错误。我查看了日志并得到了一个找不到模块'webpack/bin/config-yargs'。因此,我尝试将我的 webpack 更新为 webpack": "2.2.0-rc.3 以查看是否是版本问题。之后,根据日志,“应用程序错误”是由“Entrypoint size exeeds the recommened limit (250kB)”错误消息引起的。目前有什么我可以尝试的吗?
    • 分享回购。这样我就可以编译,查看整个代码并更快地找到问题所在。
    • 当然。这是我的repo
    猜你喜欢
    • 2017-10-07
    • 1970-01-01
    • 2017-12-18
    • 2014-11-09
    • 1970-01-01
    • 2021-06-05
    • 2020-07-27
    • 1970-01-01
    • 2016-06-26
    相关资源
    最近更新 更多