在create-react-app中配置生产环境(SyntaxError:位于0的JSON中的意外令牌<)

问题描述 投票:1回答:1

我想在我的应用程序中配置生产环境(使用create-react-app)。也许这是一个愚蠢的问题,因为我正在搜索并且有很多关于此的文章,但这些都没有帮助我。另外,我在create-react-app here(生产)和here(开发)中使用了代码,但仍然无效。

对于服务器端,我正在使用节点,并且所有API都在响应中的开发模式下运行良好。但是当我使用生产模式时,它无法正常工作。

它刚刚回归

SyntaxError:位于0的JSON中的意外标记<

在浏览器控制台中。

我无法在生产模式下访问服务器中的路由。

我该如何解决?帮助赞赏。

这是我的应用程序树,前端文件夹包含我的反应代码并在不同的端口上运行(服务器:3000,反应:生产:3001,开发:5000)。我已将这行代码添加到app.js:

app.use(express.static(path.join(__dirname, 'front-end/build')));
 app.get('*', function (req, res) {
 res.sendFile(path.join(__dirname, 'front-end/build', 'index.html'));
 });

这在www.js:

if (process.env.NODE_ENV === 'production') {
app.use(express.static('front-end/build'));
 }

enter image description here

node.js reactjs production-environment create-react-app
1个回答
2
投票

我找到了答案,我的应用程序现在正在生产模式下工作,我已经部署了它。我刚将这些行添加到服务器端代码(节点应用程序)根目录中的app.js中:

let root = path.join(__dirname, '..', 'myapp/fron-end/build');
  app.use(express.static(root));
  app.use(function(req, res, next) {
  if (req.method === 'GET' && req.accepts('html') && !req.is('json') && 
     !req.path.includes('.')) {
         res.sendFile('index.html', { root });
    } else next();
  });

这里myapp是我的项目文件夹(服务器端)的名称,fron-end是我的前端文件夹的名称,其中包括为生产创建的build文件夹。 (我把我的前端文件夹放在服务器端文件夹中)

这个链接对我有帮助。 Uncaught SyntaxError: Unexpected token < #1812

希望这有助于其他人。

© www.soinside.com 2019 - 2024. All rights reserved.