如何使用React前端部署Symfony 4后端(在子目录中)

时间:2018-11-17 15:24:42

标签: php reactjs apache symfony cpanel

因此,我正在尝试构建一个平台,该平台使用Symfony 4作为后端服务(仅JSON api调用),并使用React作为前端。

我正在使用cPanel,并在生产模式下构建React应用后,将其复制到public_html文件夹中。

同时,我创建一个名为“ api”的文件夹,并将Symfony后端代码扔在那里。我已经安装了symfony/apache-pack,并且可以通过以下URL访问我的Symfony API:'mydomain.com/api/public/api/users',因为apache-pack创建的htaccess文件位于公共文件夹中。

但是这不是我想要的,我希望能够以“ mydomain.com/api/users”的身份访问我的API,还能够通过“ mydomain.com/login”访问React应用(或我创建的其他任何路线)。

我可以执行任何配置来完成这项工作吗?

我应该将我的Symfony应用程序简单地切换到“ api.domain.com”之类的子域并使用它吗?

1 个答案:

答案 0 :(得分:0)

您会感到惊讶,这非常简单,不仅适用于响应,而且还适用于您想与Symfony结合使用的任何其他JavaScript框架。

只需添加react index.html即可成为symfony的base.html。

换句话说,让Symfony渲染引用React脚本的index.html

../ base.html.twig

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>My React App</title>
  </head>
  <body>
    <!-- ... other HTML ... -->

    <!-- Load React. -->
    <!-- Note: when deploying, replace "development.js" with "production.min.js". -->
    <script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
    <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>

    <!-- Load our React component. -->
    <script src="app.js"></script>

  </body>
</html>