繁体   English   中英

节点-快速-递归路由

[英]Node - Express - Recursive Route

我有一个Node / Express应用程序。 在此应用中,我具有以下路线设置:

app.use('/article/:title/demo', function(req, res) {
  console.log('load the demo view');
  res.render('article/demo', { title: req.params.title }); 
});    

app.use('/article/:title', function(req, res) {
  console.log('view the article');
  res.render('article/content', { title: req.params.title });
});

我的文章/内容文件加载正常。 但是,我的文章/演示会导致递归负载。 我不理解为什么。 我的/article/demo.html文件如下所示:

<html>
<body>
    <article>
<iframe style="width:100%; height:800px; overflow-y:scroll;" src="./demo/main.html"></iframe>
    </article>    
</body>
</html>

我有一个main.html文件。 但是,它没有被渲染。 当我查看控制台窗口时,我注意到只要我保持浏览器窗口处于打开状态,便会重复开始打印load the demo view 我实际上可以看到article / demo文件本身已加载。 但是,我从未看到main.html的内容。 我不确定该如何解决。 任何帮助,将不胜感激。

当浏览器向服务器请求./demo/main.html时,将匹配/article/:title/demo 那可能不是main.html的正确路径。 这在很大程度上取决于您如何设置静态资产加载。

View可以正确呈现文件,但由于其在静态文件夹中不可用,因此无法访问main.html。 相对路径加载将不起作用,您需要具有如下所示的静态文件夹。 将文件放在其中。

app.set('view engine', 'ejs'); app.use(express.static(path.join(__dirname, 'public')));// Load static files

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM