我知道这是一个常见的问题,我在stackoverflow中尝试了一些答案,但在我的例子中它还不起作用。
我在一个共享主机中有一个应用程序,它是我使用yarn build构建的。当我刷新页面时,一个404错误如期显示。所以我读取了this docs并用下面的代码创建了一个.htaccess文件:
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]并将其添加到项目的根文件夹中。现在一切都正常了。
我的管理面板有第二个版本,位于子目录:https://example.com/Admin/Login,我在登录目录上为管理应用程序提供服务。
因此,当我刷新页面时,我也面临着同样的问题。例如https://example.com/Admin/Dashboard。
如果我刷新https://example.com/Admin/Login,它会加载页面并正常工作,但是刷新https://example.com/Admin/Dashboard会得到一个空白页面。
我甚至使用位于public目录中的同一个.htaccess文件构建了管理面板,该文件在构建过程后被复制到构建文件夹,但它不起作用。我总是收到一张空白页。
我读了一些answers here,但它还不能工作。
routes.js:
import React from 'react';
import { BrowserRouter, Switch, Route } from "react-router-dom";
import Login from './pages/Login';
import Admin from './pages/Dashboard';
export default function Routes() {
return (
<BrowserRouter>
<Switch>
<Route path="/Admin/Login" exact component={Login} />
<Route path="/Admin/Dashboard" component={Manager} />
</Switch>
</BrowserRouter>
);
}package.json:
{
"name": "dashboard",
"homepage": "https://example.com/Admin/Login",
"version": "0.1.0",
"private": true,
"dependencies": {
"@testing-library/jest-dom": "^5.11.4",
"@testing-library/react": "^11.1.0",
"@testing-library/user-event": "^12.1.10",
"axios": "^0.21.1",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-icons": "^4.2.0",
"react-input-mask": "^2.0.4",
"react-router-dom": "^5.2.0",
"react-scripts": "4.0.3",
"web-vitals": "^1.0.1"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}还有什么我应该做的吗?
发布于 2021-04-23 03:37:34
我将登录文件夹的内容移到根目录(https://example.com/Admin),这样登录表单就会加载到根目录中,而我让.htaccess保持不变。
https://stackoverflow.com/questions/67219235
复制相似问题