javascript - 使用 Create React App 的静态 HTML 登录页面
问题描述
嗨,我有一个静态 html 登录页面,它有自己的 css、静态资产,并链接到其他几个静态页面。所以整个迷你项目都有自己的 index.html、about-us.html、contact.html 等。另外,我还通过 CRA 构建了一个 react 应用程序,我有这个非常酷的仪表板,现在我想将两者结合起来我的网站的入口点是登录页面,然后当您转到 /dashboard 路径时,这是我的反应应用程序我该如何实现这一点?
所以我的静态登录页面项目的项目结构如下所示:
/homepage
--index.html
--contact.html
--about-us.html
--/static
----css files, imgs, ect
我的 React 项目使用 react 路由器,所以我在路径 /dashboard 有一个功能齐全的 React 项目
import React from "react";
import ReactDOM from "react-dom";
import "./index.css";
import * as serviceWorker from "./serviceWorker";
import { Route, BrowserRouter as Router, Switch } from "react-router-dom";
import Login from "./components/Login/Login";
import Dashboard from "./components/Dashboard";
import SignupPage from "./components/Signup/SignupPage";
const App = (
<Router>
<Switch>
<Route exact path="/login" component={Login} />
<Route exact path="/signup" component={SignupPage} />
<PrivateRoute exact path="/dashboard" component={Dashboard} />
</Switch>
</Router>
);
ReactDOM.render(App, document.getElementById("root"));
serviceWorker.unregister();
解决方案
只需尝试在您的服务器上添加设置,以便 /dashboard 路由指向您的反应应用程序。 NGINX 中的示例,您可以添加配置
location ^~ /dashboard {
alias <yourprojectfolder>/build;
try_files $uri $uri/ /dashboard /index.html;
}
您可能需要将“basename”属性添加到您的反应应用程序的路由设置中:
<Router basename="/dashboard ">
如果这不起作用,请将每个 html 页面重写为 React 中的视图。我知道您没有很多 javascript,也不会遇到太多问题。
此外
您可以使用“样式化组件”模块来包装您的视图,以防您的页面因将 css 泄漏到其他组件而在视觉上受到损害。
推荐阅读
- vue.js - Vue.js的vuexpress、VuePress和vue-server-renderer模块的区别和使用
- android - Android Kotlin Parcelize android 扩展给出错误
- mongodb - 如何清除 mongo DB 中多个集合的数据?
- javascript - 如何创建一个假的 Gamepad 对象?
- gitlab - 当我想在这些应用服务器之一上运行更新时出错,我得到:
- xcode - ITMS-90725:SDK 版本问题
- sql - Sql 获取所有列匹配的不同行,除了一个
- php - 我无法让 PHP zip 扩展在 WAMP 上工作
- mongodb - 查询其中包含两个或多个空格的单词/字符串
- kofax - Kofax“编辑表头”不允许单个文档的第二页导航