【问题标题】:How to deploy a create-react-app to a web host (ex. Siteground)?如何将 create-react-app 部署到网络主机(例如 Siteground)?
【发布时间】:2018-07-04 00:16:15
【问题描述】:

我正在使用 create-react-app 构建一个 react 项目,并试图弄清楚如何将我的代码部署到我在 Siteground 上的托管服务器。

有人知道最好的方法吗?我是否通过 FTP 导入我的构建文件夹?我可以通过 GitHub 自动化这个过程吗?

提前致谢!

【问题讨论】:

    标签: reactjs github web-deployment continuous-deployment create-react-app


    【解决方案1】:

    我在 siteground 上部署也有问题,简单的解决方案是为您的构建创建一个 git repo,并在 siteground 上设置您的 public_html 文件夹以跟踪该 git repo。

    确保也创建

    .htaccess

    内容是这样的

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.html [QSA,L]
    

    如果没有,您的路由将无法正常工作

    如果您之前部署过其他方式,还记得去 Tools->Speed->Caching 并刷新缓存

    【讨论】:

    • 我还发现每次部署后都需要刷新缓存。我希望 siteground 会注意到我上传了新文件并继续从缓存中提供它们。我想知道是否有办法解决这个问题(不会失去缓存的优势)。
    【解决方案2】:

    如果你使用create-react-app,那么你可以这样做:

    1. npm run buildyarn build
    2. 根据上一点复制 build 文件夹内的所有内容
    3. 为了让路由正常工作,添加.htaccess文件,内容如下:
      <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteBase /
        RewriteRule ^index\.html$ - [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-l
        RewriteRule . /index.html [L]
      </IfModule>
      
    4. 将其导出到服务器的根文件夹(通常为 public_html)

    Check this great article for more info :)

    希望对你有帮助!

    【讨论】:

      【解决方案3】:

      我刚刚使用 FileZilla 将我的 create-react-app 上传到 siteground,这是一步一步的:

      1. 一旦你准备好了所有的生产npm run build
      2. 在浏览器上打开 siteGround 并进入 myAcount 部分,点击 go to cPanel 向下滚动并找到 FTP Accounts
      3. 创建一个指向目录public_html的新帐户
      4. 创建后,它会出现在下方并一直右击configure FTP client,在手动设置下,您已经获得了您需要连接的内容
      5. 打开 FileZilla 并在文件中转到 siteManager 然后 new site
      6. host(in filezilla) === FTP server (in sitiGround), port 设置为 siteground 端口,协议和加密保持默认
      7. Logon Type 设置为正常,user === FTP user(siteGround) 和 password 您用来创建该 FTP 用户的那个
      8. 点击connect并将yourApp/build内容(从左侧是您的PC)粘贴到(右侧的文件夹)是您的public_html in siteGround

      就是这样!去你的网站检查一下,react 应用应该会显示在那里

      这里是这个过程的来源 https://www.siteground.com/tutorials/ftp/ 虽然在这里他们使用快速连接来进行 fileZilla,但我有不止一个站点,因此 siteManager 更干净并存储您的凭据以供下次使用

      【讨论】:

        【解决方案4】:

        npm run buildyarn build

        将用于生产的应用程序构建到build folder。 它在生产模式下正确捆绑 React 并优化构建以获得最佳性能。

        npm run build 使用您的应用的生产构建创建一个构建目录。设置您最喜欢的 HTTP 服务器,以便为您网站的访问者提供 index.html,并使用 /static/js/main.&lt;hash&gt;.js 文件的内容为对 /static/js/main.&lt;hash&gt;.js 等静态路径的请求提供服务。

        来源:create-react-app

        【讨论】:

          【解决方案5】:

          通常有来自主机供应商的指导性策略。

          例子:

          Heroku Create React App Build

          S3 Cloudfront

          否则您将不得不自己管理它,注册一个自定义构建脚本,该脚本用于:

          npm 运行构建

          然后移动构建文件夹。如果您使用 Maven,您可以使用以下插件管理整个构建:

          Frontend Maven Plugin

          【讨论】:

            【解决方案6】:

            根据create-react-app 文档,您运行npm run build 基本上只是获取输出并将其通过FTP 传输到您的网络服务器。

            不过,您的问题非常广泛——您可以通过 GitHub 或其他工具实现自动化,但这确实会引起 StackOverflow 上的固执己见(这不是此类问题的正确论坛)。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2018-10-19
              • 2015-08-05
              • 2017-09-21
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2019-06-05
              • 2018-09-06
              相关资源
              最近更新 更多