我有
的静态路线/public/slides/lecture1.html#!3
显示讲道的第三个div元素(其他div
HTMLelements将有display:none;
)。
我使用Express app.use(express.static(WEBROOT));
,一切正常。但是我想能够制作AJAX Crawable幻灯片,所以我想根据请求做出反应,看起来像这样:
/public/slides/lecture1.html?_escaped_fragment_=3
并返回只有一个div
元素的单页 - 这样Google就可以正确地在讲座1.html中为幻灯片3中的文本编制索引。
我如何使用Express?
是否可以在已经由express.static提供的链接上添加GET请求处理程序?
由于
答案 0 :(得分:4)
结帐https://github.com/OptimalBits/Crawlme。它是一个快速中间件,可以自动处理。就这样做,你就是ajax-crawlable:
var
express = require('express'),
http = require('http'),
crawlme = require('crawlme');
var app = express()
.use(crawlme())
.use(express.static(__dirname + '/webroot'));
http.createServer(app).listen(80);
答案 1 :(得分:2)
正如我们在IRC上谈到的那样,这不会出现在“静态路由”类别中(我的意思是你不会使用express.static提供此服务)。
您要做的是创建Express路线并根据您的查询变量渲染该文件:
app.get('/lecture1.html', function (req, res) {
if (req.query._escaped_fragment_ == 3) {
// .. do something..
} else {
// render lecture1.html here
// you can just rename the file lecture1.ejs
// move it to the views directory
// and then render it like res.render('lecture1.ejs');
}
});
答案 2 :(得分:0)
您可以使用req.query属性来访问快速请求中的查询字符串。