我将React网站build/文件夹部署到AWS S3存储桶中.
如果我去www.mywebsite.com,它可以工作,如果我点击a标签去项目和关于页面,它会引导我到正确的页面.但是,如果我复制并发送页面网址或直接转到类似的链接:www.mywebsite.com/projects,则返回404.
这是我的App.js代码:
const App = () => (
<Router>
<div>
<NavBar/>
<Switch>
<Route exact path="/" component={Home}/>
<Route exact path="/projects" component={Projects}/>
<Route exact path="/about" component={About}/>
<Route component={NoMatch}/>
</Switch>
</div>
</Router>
);
Run Code Online (Sandbox Code Playgroud) 有一阵子,我只是将网站内容存储在s3存储桶中,并且可以通过完整的url访问所有页面。我想通过添加SSL使我的网站更安全,所以我创建了一个CloudFront发行版以指向我的s3存储桶。
该站点将加载正常,但是如果用户尝试刷新页面或尝试使用完整URL(即www.example.com/home)访问页面,则他们将收到一个AccessDenied页面。