2015-09-06 28 views
1

在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文件 –

回答

3

我們有類似的情況,我們通過這種方式解決了這個問題。

  • 編寫一個單獨的js文件,在需要時呈現xml文件並將其保存到目錄中,清除您的主Web事件循環不再受到影響。
  • 讓我們假設該文件夾的名稱是地圖,並且該文件是sitemap.xml的,你可以在快遞這樣聲明一個靜態文件

    app.use(express.static(「地圖」));

  • ,或者如我建議讓一個Web服務器可以執行它,因此要求甚至不使它到你的應用程序,對我來說,我使用nginx的

    位置/網站導航 { 根/ DIR /到/應用/目錄/站點地圖; } 我希望這有助於:)

+0

非常感謝! – user1775888

相關問題