如果重定向到索引,节点js表示不加载webpack bundle js

时间:2018-03-21 10:37:31

标签: javascript node.js express webpack passport.js

我正在使用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。

1 个答案:

答案 0 :(得分:0)

我解决了。问题不是在服务器端,而是实际上有反应路由。我在我的反应路由器exakt路径上,这使得组件永远不会为任何其他URL安装。希望在我的情况下这有助于其他人