我使用react与VITE和react-router-dom在本地托管react应用程序工作得很好,如果它托管在任何在线主机服务上,如 NETLIFY,VERCEL 或 HOSTINGER 也工作得很好,但如果我传递到react-router使用的新路由页面-dom它工作正常,直到我重新加载路由它崩溃的页面,即使在多次重新加载仍然崩溃,但如果我seped回到主页路由页面“/”即使重新加载也能正常工作
错误消息=> GET https://planandresults.vercel.app/services 404
应用程序存储库:=> vercel托管的https://github.com/sfwnisme/planandresults应用程序:=> https://planandresults.vercel.app/
App()文件
function App() {
const location = useLocation();
const [t, i18n] = useTranslation();
if (i18n.language === "en") {
document.documentElement.style.direction = "ltr";
document.documentElement.setAttribute("lang", "en");
} else if (i18n.language === "ar") {
document.documentElement.style.direction = "rtl";
document.documentElement.setAttribute("lang", "an");
}
//----------
useEffect(() => {
Aos.init();
}, []);
useEffect(() => {
window.scrollTo(0, 0);
}, [location.pathname]);
//----------
console.log("App.jsx:", "Render App.jsx");
return (
<div
className={`App bg-white ${
i18n.language === "en" ? "font-sf" : "font-almaria"
} text-white`}
>
<Routes>
<Route
path="/"
element={
<div className=" LANDING_PAGE mx-auto">
<Header />
<Services />
<About />
<WhyUs />
<Partners />
<Contact />
<Footer />
</div>
}
/>
<Route path="/services" element={<ServicesSection />} />
<Route path="/services/service-0" element={<ServiceZero />} />
<Route path="/services/service-1" element={<ServiceOne />} />
<Route path="/services/service-2" element={<ServiceTwo />} />
<Route path="/services/service-3" element={<ServiceThree />} />
<Route path="/services/service-4" element={<ServiceFour />} />
<Route path="/services/service-5" element={<ServiceFive />} />
<Route path="/services/service-6" element={<ServiceSix />} />
<Route path="/services/service-7" element={<ServiceSeven />} />
<Route path="/about" element={<AboutPage />} />
<Route path="/partners" element={<PartnersPage />} />
</Routes>
</div>
);
}
通常试图从我的应用程序传递到路由页面,它工作正常,但当我重新加载页面时,它给了我一个控制台错误GET https://planandresults.vercel.app/services 404
,并显示来自托管服务vercel的错误消息。
真的,我无法预料这个问题,这对我来说似乎很奇怪,因为我是React的新手
1条答案
按热度按时间xe55xuns1#
.htaccess
文件只在apache服务器上工作,所以我认为它在这种情况下不会工作。在项目的根目录下添加一个vercel.json文件,并使用“rewrites”重写所有传入路径以引用索引路径。
例如:
点击此处了解更多信息:https://vercel.com/docs/configuration#project/rewrites