san*_*der 4 nginx reactjs react-router create-react-app
我正在使用"react-router-dom": "^4.2.2"。
如果我测试,localhost:3000/second它会完美运行。
当我使用nginx在ubuntu服务器上上传此文件并尝试时www.website.com,它可以工作。当我尝试使用www.website.com/second它时,它给了我404 not found。我正在使用create-react-app。
app.js
class TestRoutes extends React.Component{
constructor(props){
super(props);
}
render(){
return(<React.Fragment>
<BrowserRouter>
<Switch>
<Route exact path='/' component={MainPage}/>
<Route path='/second' component={SecondPage}/>
<Route path='/third' component={ThirdPage}/>
</Switch>
</BrowserRouter>
</React.Fragment>);
}
}
ReactDOM.render(<TestRoutes/>, document.getElementById("root"));
Run Code Online (Sandbox Code Playgroud)
/ etc / nginx / sites-available / default 这是服务器上的配置文件
server {
listen 443 ssl;
root /var/www/reactcamera/build;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name website.com www.website.com;
ssl_certificate /etc/letsencrypt/live/website.com/fullchain.pem; #
managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/website.com/privkey.pem; #
managed by Certbot
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
Run Code Online (Sandbox Code Playgroud)
san*_*der 10
答案在此线程 React-router和nginx中找到
我要做的是将default配置文件修改/etc/nginx/sites-available/default为:
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri /index.html;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5101 次 |
| 最近记录: |