我正在使用app id护照解决方案为网站添加登录功能。护照位工作正常。
然而问题是当我重定向到我的包链接的文件index.html时,它不会仅显示包的html。要清楚,它找到index.html文件并加载html而不是索引文件中的bundle。但是,如果我的index.html通过express自动加载为我的包显示的索引文件。
因此,如果我转到页面基本网址,该包将显示,但如果我进入我的/ login,然后将我的网站重定向到/public/index.html
,则该包不会显示。
此
app.get('/*',function(req,res,next){
console.log("is user; ")
console.log(req.user)
if (req.user) {
res.sendFile(__dirname + '/public/index.html');
} else {
res.redirect("/login")
}
})
和
const LANDING_PAGE ="/public/index.html";
app.get("/login", passport.authenticate(WebAppStrategy.STRATEGY_NAME, {successRedirect : LANDING_PAGE, forceLogin: true}));
这不显示包,但使用
app.use(express.static(__dirname + '/public'));
自动加载index.html并显示包代码。
我的index.html文件
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Demo react</title>
<link rel="shortcut icon" href="filer/DL_Logo.svg" type="image/svg">
</head>
<body>
<h1>Hello this is kinda working...</h1>
<div id="container"></div>
<script src="/dist/bundle.js" type="text/javascript"></script>
<!-- Resource jQuery -->
</body>
</html>
我没有控制台错误,网络选项卡显示它已加载捆绑JS文件。
我认为问题出在Webpack捆绑包配置或Express。
答案 0 :(得分:0)
我解决了。问题不是在服务器端,而是实际上有反应路由。我在我的反应路由器exakt路径上,这使得组件永远不会为任何其他URL安装。希望在我的情况下这有助于其他人