【发布时间】:2021-05-21 01:06:17
【问题描述】:
我使用 react 创建了我的第一个单页应用程序 (SPA) 静态网站,并将其托管在 Godaddy 上。它已经运行了大约一个月并且工作正常。
几天前,我创建了一个“联系我”页面,用户可以在其中填写表格并使用 Nodemailer 向我发送一封电子邮件。
无论如何,当我完成“联系我”页面时,我运行了npm run build,并按照指示将所有内容上传到了public_html 文件夹中的cPanel。但是主页可以正常工作,但“/contactus”页面返回 404。
我与 Godaddy 交谈过,他们的第一个建议是添加 .htaccess 文件,该文件将所有内容从 HTTP 重定向到 HTTPS。我这样做了,它仍然返回 404。
这是 .htaccess 文件的内容
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^(www\.)?coolexample\.com
RewriteRule ^(.*)$ https://www.coolexample.com/$1 [R,L]
我第二次与 GoDaddy 交谈,他们告诉我在 index.html 中找不到“/ContactUs”。我以为npm run build 处理了这个?
当我使用npm start 并在我的本地主机上运行时,contactus 链接有效。
我的app.js 代码如下所示:
import React from "react"
import {AuthProvider} from "../contexts/AuthContext"
import {BrowserRouter as Router, Switch, Route} from "react-router-dom"
import ContactUs from "./ContactUs";
import Home from "./Home"
import ForgotPassword from "./ForgotPassword"
import NavigationBar from "./NavigationBar";
import NoMatch from "./NoMatch";
function App() {
return (
<React.Fragment>
<AuthProvider>
<NavigationBar/>
</AuthProvider>
<div>
<Router>
<AuthProvider>
<Switch>
<Route exact path="/" component={Home}/>
<Route exact path="/ContactUs" component={ContactUs}/>
<Route path="/forgot-password" component={ForgotPassword}/>
<Route component={NoMatch}/>
</Switch>
</AuthProvider>
</Router>
</div>
</React.Fragment>
)
}
我错过了什么?
感谢任何和所有帮助/指导。
【问题讨论】:
标签: reactjs cpanel godaddy-api