html - 如何将 React App 合并到具有现有 HTML 结构的现有网站中
问题描述
我们有一个<html>
文件存储在 AWS S3 上。该文件包含页眉和页脚信息。
这个文件有它自己的构建管道,我们从数据库中收集一些数据并生成 HTML 并上传到 S3。
我们现在想在这个 HTML 页面中包含一个捆绑的 React 应用程序。即在页面主体内将是捆绑的反应应用程序。
React App 是基于最新的 create-react-app 设置构建的,因此 babel 和 webpack 是预先配置的。如果在没有上述设置的情况下托管应用程序,则反应构建会创建所有相关文件。
有没有办法合并两个页面?
**注意:专门寻找合并作为构建过程的一部分。**
我们有一个项目可以生成标题 html 并将其发布到 S3 上。我们有触发器可能会触发它在特定时间/更改后重新生成等。
我们有一个 React 应用程序,它在生产构建中与 babel/webpack 捆绑在一起,并生成输出 HTML/bundle js 等。所有内容都经过缩小和哈希处理,因此文件名是 bundle。随机哈希.js 等
我们需要合并两个输出。S3 的 html 文件需要在其 body/html 中包含 React App。
理想情况下在管道/构建过程中。因此,如果一个更改,合并将重新编译/重新运行。
解决方案
为此,您需要将您的 react 构建文件夹中的 js、css 和媒体文件托管在 S3 存储桶中,并将以下内容添加到代码中。
<html>
..... your static html code
<div id="the id used to bootstrap your react app (from the index.html file in the public folder)"></div>
......
links to all the files in your JS, CSS And media files from the react build folder
</html>
我建议尽可能使用托管图像(您也可以将它们托管在 S3 上)和资产,这样您就不需要在 html 文件中添加媒体文件链接。
您可能想查看此链接,了解如何在构建您的反应应用程序时将所有文件捆绑到一个文件中(我没有尝试过这部分)。
推荐阅读
- powerbi - 使用另一个表中的切片器运行总计
- html - 防止TD从内容上长高
- amazon-web-services - 仅使用 CloudFormation 分配私有 IP
- regex - Azure CLI\Powershell 如何排除要求
- php - 运行多个查询时如何解决“命令不同步”错误?
- authentication - 更新移动应用程序以使用 ROPC 请求访问令牌时在 Web API 上未经授权
- reactjs - 无法多次渲染 React 组件
- android - onTouch() 方法没有收到 ACTION_DOWN
- python - Keras Conv2D 输出维度。多类实例分割
- ifc - 具有与 BIMServer 类似的 IFC 处理能力的工具