我的任务是在AWS S3存储桶上部署ReactJS应用程序。这个ReactJS应用程序将调用由Apache反向代理SSL终结器堆栈所前端的API端点。我已将部署配置为现在可以在其中显示带有应用程序徽标的空白/白色布局页面,然后在Regex regex = new Regex(" (¤^ ¤+) ");
string cleanString = regex.Replace(testString, "[$1]");
Console.WriteLine(cleanString);
上显示组件或内容的位置。
S3存储桶当前被设置为私有,并通过VPC端点在其和Apache Web服务器之间私有路由流量。通过为UI和API端点使用相同的原始域,我避免了CORS问题。
当我使用S3的静态网站配置URL时,将ACL从Route not found
更改为Private
,并删除VPC端点,ReactJS解决方案成功加载了默认组件。
到目前为止,我已经能够部署一个使用Javascript库的静态网站,并成功在Apache反向代理SSL终止符堆栈之后调用API。
这是我下面的App.js代码:
PublicRead
这是我下面的Apache配置:
import React from 'react';
import { BrowserRouter as Router, Switch, Route } from 'react-router-dom';
import Layout from './components/core/Layout';
import BS from './assets/global-styles/bootstrap.min.module.css';
import './index.module.css';
import Homepage from './pages/Homepage';
import GraphView from './pages/GraphView';
function App() {
return (
<Layout>
<Router>
<Switch>
<Route exact path="/" component={Homepage} />
<Route exact path="/views/:id" component={GraphView} />
<Route path="*" render={() => <span>Route not found</span>} />
</Switch>
</Router>
</Layout>
);
}
export default App;
我需要ReactJS应用程序成功部署并运行。我决定为每个静态资产文件夹创建一个Apache映射,因为仅使用一个与Location或LocationMatch指令Regex匹配器匹配的映射会与应用程序的根目录匹配,而所有其他资产位置似乎都不起作用。请问我在做什么错?这花了我几天的时间。