php - 在 React 应用程序中使用 PHP 后端

标签 php reactjs amazon-s3

我有一个 React 应用程序,我运行 npm run build 来生成一个构建包,然后上传到 S3。假设 www.test.com/build/

但我有一个 PHP 后端应该负责提供 index.html(来自 www.test.com/index.html)

由于与 S3 存储桶和 PHP 应用程序没有任何联系,我不知道如何处理 React 应用程序中的哈希名称

我无法在没有哈希的情况下生成构建包,因为我会丢失缓存破坏器。

使用 React 应用程序和后端应用程序有哪些好的做法。在这种情况下是 PHP,但我认为问题应该与托管在不同服务器上的 NodeJS 后端相同。

我正在使用 AWS CodePipeline 构建 React 应用程序 (npm run build) 和 php 应用程序 (composer install)

最佳答案

PHP 不需要知道带有或不带有散列的 JS 文件。您的 PHP 服务器将仅提供 index.html 文件。您的 index.html 文件包含入口点 javascript 文件。

<script type="text/javascript" src="/js/vendor.bundle.js"></script>
<script type="text/javascript" src="/js/index.js"></script>

当您的 PHP 服务器提供 index.html 文件时,在客户端的浏览器上,它将使用供应商和索引文件(或任何您的文件名)通过 block 加载必要的 react 和其他 js 代码。

如果您需要将 vendor.bundle.js 和 index.js 与哈希一起使用怎么办?

以下模块将为您提供帮助。

模块 1:https://www.npmjs.com/package/webpack-manifest-plugin 该模块将帮助您跟踪生成的散列文件。

模块 2:https://www.npmjs.com/package/html-replace-webpack-plugin 使用此模块,您可以将入口点文件替换为从模块 1 获得的哈希文件名。

关于php - 在 React 应用程序中使用 PHP 后端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54318074/

相关文章:

amazon-web-services - 我可以使用现有的 AWS IAM 角色通过 Cloudformation 模板创建 S3 存储桶吗?

python - 仅当远程文件比本地副本更新时,如何使用 boto 从 S3 下载文件?

php - Codeigniter 无法在 IIS 中运行

javascript - 在 javascript (laravel) 中获取 php 数组

reactjs - 当我单击“提交”按钮时,如何获取包含电子邮件和密码的对象

android - React Native : error: resource android:style/TextAppearance. Material.Widget.Button.Borderless.Colored 未找到

php - 属性中的简单 HTML DOM 通配符

php - 如何在 PHP 函数中将 While 循环中的 mysqli_fetch_assoc 作为变量返回?

javascript - 如何处理ReactJS中从组件B中的方法调用组件A中的方法的情况

amazon-web-services - 在生产中包含 aws-java-sdk jar