【问题标题】:Load HTML or jade page into div of HTML or jade page [closed]将 HTML 或玉页面加载到 HTML 或玉页面的 div 中 [关闭]
【发布时间】:2015-02-05 20:33:10
【问题描述】:
在我的 Node.js 项目中,我有一个脚本 (JS),它使用 $("#div").load(directory) 将 Jade 页面加载到另一个 Jade 页面的 div 中。我指定了我要加载的翡翠页面的目录,但它只显示CANT GET /page1.jade。我需要向我的app.js 添加一些内容吗?或者也许我的目录是错误的(我尝试了所有可能的组合)? (我也尝试将所有页面都设为 HTML 而不是 Jade,但它也不起作用。)
【问题讨论】:
标签:
javascript
html
node.js
express
pug
【解决方案1】:
您必须将路径作为“目录”传递到该页面。
不要考虑服务器端目录结构,而要考虑路由映射。
假设您的 nodejs Web 应用程序具有以下目录结构:
+ views
|- index.jade
|- page1.jade
|- page2.jade
现在假设你有这张路线图 - 我将在这里使用类似 Express 的结构
app.get('/page100', function(req, res){
res.render('index');
});
app.get('/page200', function(req, res){
res.render('page1');
});
app.get('/page300', function(req, res){
res.render('page2');
});
正如您在此示例中看到的路由所说:
- 如果网络浏览器要求
page100 提供索引页面,
- 如果要求
page200 服务page1
- 如果要求
page300 服务page2
在你的情况下,假设你想要动态加载page2,你必须将正确的路由传递给 jQuery:
$('#div').load('/page300');
注意:路由也可以是参数化的且更复杂,但其下的逻辑始终与此处的示例相同。