所以我目前处于这种情况下,我想在S3存储桶中显示我的react应用程序。当我将应用程序部署到S3存储桶时,它为我提供了一个静态URL,可以看到该应用程序,例如;
https://s3bucket.www.react-application.cloud/apps/calculationapp/24995X095636Fb9b5821/index.html
在我的情况下,我看到一个空白页面,我的假设是我在index.js文件中配置反应路由的方式存在一些问题;
index.js
const getBasename = path => path.substr(0, path.lastIndexOf('/'));
ReactDOM.render(
<BrowserRouter basename={getBasename(window.location.pathname)}>
<App />
</BrowserRouter>,
boostrapElement
);
我之所以说这是最有可能的问题的原因是当我简单地使用它部署时;
ReactDOM.render(
<h1> Show me something ! </h1>
boostrapElement
);
它工作正常,我能够看到h1
App.js
class App extends Component {
render() {
return (
<React.Fragment>
<Route key="start-path" path='/' render={(props) => <HomeComponent {...props} filterData='HOME' />} />
<Route exact key="second-page" path='/react/second' render={(props) => <HomeComponent {...props} filterData='SECOND' />} />
<Route exact key="third-page" path='/react/third' render={(props) => <HomeComponent {...props} filterData='THIRD' />} />
</React.Fragment>
)
}
}
答案 0 :(得分:0)
您的帖子并没有真正解释您的问题,但我怀疑这可能是您的问题。
转到托管网站的S3存储桶,上传文件后,转到“属性”选项卡,然后单击“静态网站托管”选项。选择“使用此存储桶托管网站”选项,并在“索引文档”和“错误文档”字段中提供index.html。这样可以确保您对S3的请求假设x == 8
不会像通常那样尝试访问存储桶中的/react/second
键。