我从站点地图xml生成器网站下载了我的XML站点地图。我将sitemap.xml放在我的公共目录上,但当我尝试将sitemap.xml提交到谷歌控制台时,我收到以下错误:常规HTTP错误:404未找到
HTTP错误:404
所以我编码了app.get('/sitemap.xml', function( req, res, next ) {
res.header('Content-Type', 'text/xml');
res.render( 'sitemap' );
)};
当我导航到' website / sitemap.xml'我收到以下错误:
此页面包含以下错误:
错误:属性itemscope的规范授权值
谢谢你的帮助
答案 0 :(得分:3)
对于那些正在寻找一种在您的代码上动态创建XML的方法,并且不想使用另一个库,也不想在公共文件夹中存储文件的人,可以使用以下方法:
app.get('/sitemap.xml', async function(req, res, next){
let xml_content = [
'<?xml version="1.0" encoding="UTF-8"?>',
'<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">',
' <url>',
' <loc>http://www.example.com/</loc>',
' <lastmod>2005-01-01</lastmod>',
' </url>',
'</urlset>'
]
res.set('Content-Type', 'text/xml')
res.send(xml_content.join('\n'))
})
答案 1 :(得分:1)
使用https://www.xml-sitemaps.com/之类的工具生成您的sitemap.xml文件
在您的项目中上传sitemap.xml
然后将其添加到您的.js文件:
router.get('/sitemap.xml', function(req, res) {
res.sendFile('YOUR_PATH/sitemap.xml');
});
确保您将sitemap.xml文件的实际路径更改为YOUR_PATH。
答案 2 :(得分:1)
在我的NodeJS Express项目中,无需安装任何库,我就可以使用首选的视图引擎(车把)将其添加到路线中。
export const routes: RouteMapper[] = [
{
"/sitemap.xml": [
{
method: "get",
handler: (req, res) =>
res.sendFile("/src/views/sitemap.xml", { root: "." }),
},
],
},
];
干杯!
答案 3 :(得分:0)
站点地图不必是XML文档。您只需要一个带有URL的简单文本文件,因此下面的内容就可以正常工作。在下面的示例中,fetchMyUrls()
是一种函数/方法,它以字符串数组(URL字符串)的形式异步获取和返回可用的URL。
async function index (req, res){
return fetchMyUrls().then((urls) => {
var str = '';
for (var url of urls) {
str = str + url + '\n';
}
res.type('text/plain');
return res.send(str);
});
}