在nodejs/express中如何允许抓取程序的站点地图

问题描述:

在nodejs/express中如何允许抓取程序的站点地图?在nodejs/express中如何允许抓取程序的站点地图

下面的代码是我的应用程序流程的一部分,我应该在哪里放置我的站点地图文件夹/文件?以及如何允许爬虫?现在参观domain/sitemap/sitemap.xml显示没有找到..

项目/应用/ app.js

app.js

require('./RouteHandler.js')(app, express); 

RouteHandler.js

... 
var routesIndex = require('./routes/Index/Base.js'); 
app.use('/', routesIndex); 
... 

module.exports = setupRoutes; 

路线/索引/基地。 js

var express = require('express'); 
var router = express.Router(); 

router.get('/', function(req, res, next) { 
    render .. view 
}); 
module.exports = router; 
+0

使用GET方法和渲染XML文件或只使用公共目录 –

+0

我现在使用公共目录,但我不知道如何渲染XML文件? 'router.get('/ sitemap.xml',function(req,res,next){ ?? });' – user1775888

+1

你可以使用“res.sendFile(__ dirname +'/public/sitemap.xml'); “直接打开xml文件 –

我们有类似的情况,我们通过这种方式解决了这个问题。

  • 编写一个单独的js文件,在需要时呈现xml文件并将其保存到目录中,清除您的主Web事件循环不再受到影响。
  • 让我们假设该文件夹的名称是地图,并且该文件是sitemap.xml的,你可以在快递这样声明一个静态文件

    app.use(express.static(“地图”));

  • ,或者如我建议让一个Web服务器可以执行它,因此要求甚至不使它到你的应用程序,对我来说,我使用nginx的

    位置/网站导航 { 根/ DIR /到/应用/目录/站点地图; } 我希望这有助于:)

+0

非常感谢! – user1775888