NodeJsがsitemapサイト地図を生成する方法の例
ブログがHexoで管理されている場合、sitemapはプラグインを使って生成することができます。しかし、1つのコンテンツ管理サイトについては、バックエンドはexpress、koaなどの枠組みかもしれません。この時、sitemapは自分で生成する必要があります。
何がsitemapですか
Sitemapは、ウェブサイトの管理者に、検索エンジンのウェブサイト上に、キャプチャできるウェブページがあるかを通知することができます。最も簡単なSitemap形式は、XMLファイルです。ここにはウェブサイトのURLとウェブサイトごとの他のメタデータ(前回更新された時間、変更された頻度、及びウェブサイト上の他のウェブサイトに対する重要度など)が並べられており、検索エンジンがよりインテリジェントにウェブサイトをキャプチャすることができます。
sitemap構造 loc:文章リンクアドレス lastmod:最終更新時間 changefreq:更新周波数、daily/montly プリオリティ:重み sitemapを生成し、expressプロジェクトに基づく
オープンソース:sitemap、住所:https://github.com/ekalinin/sitemap.js
上のような方法は文章の数が少ない時にも使えます。何千、何万もの文章があれば、一度に引き出す方法は不向きです。戻りの結果をファイルに書き込んで、一日に一回更新してください。ただ必要なだけを
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。
何がsitemapですか
Sitemapは、ウェブサイトの管理者に、検索エンジンのウェブサイト上に、キャプチャできるウェブページがあるかを通知することができます。最も簡単なSitemap形式は、XMLファイルです。ここにはウェブサイトのURLとウェブサイトごとの他のメタデータ(前回更新された時間、変更された頻度、及びウェブサイト上の他のウェブサイトに対する重要度など)が並べられており、検索エンジンがよりインテリジェントにウェブサイトをキャプチャすることができます。
sitemap構造
<url>
<loc>http://www.jouypub.com/</loc>
<lastmod>2019-05-01</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
オープンソース:sitemap、住所:https://github.com/ekalinin/sitemap.js
> npm install --save sitemap
コードで使用
const express = require('express')
const sm = require('sitemap');
router.get('/sitemap.xml', function (req, res) {
let pageRequest = Object.create({});
pageRequest.pageSize = -1;
pageRequest.pageNum = 1;
api.post('/article/list', pageRequest, function (result) {
let urls = [];
for (let article in result) {
urls.push({
url: article.url,
changefreq: 'daily',
lastmodrealtime: true,
priority: 1,
lastmod: article.updateTime
});
}
let sitemap = sm.createSitemap({
hostname: 'http://invest.jouypub.com',
cacheTime: 600000, // 600sec, cache purge period
urls: urls
});
sitemap.toXML(function (err, xml) {
if (err) {
console.log(err);
return res.status(500).end();
}
res.header('Content-Type', 'application/xml');
res.send(xml);
});
});
});
sitemap最適化上のような方法は文章の数が少ない時にも使えます。何千、何万もの文章があれば、一度に引き出す方法は不向きです。戻りの結果をファイルに書き込んで、一日に一回更新してください。ただ必要なだけを
sitemap.toXML()
せいにするfs.writeFileSync("app/assets/sitemap.xml", sitemap.toString());
でいいです。sitemapを要求するたびにファイルを読めばいいです。以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。