【发布时间】:2020-06-03 23:34:42
【问题描述】:
我们使用react-router-sitemap 动态创建站点地图。我们无法从我们的博客中动态添加路由。代码正确返回输出,但没有将文章链接添加到站点地图,这里是代码:
import React, { useEffect } from 'react';
import {Switch, Route} from 'react-router-dom';
import HomePage from './homePage/HomePage';
import Projects from './projects/Projects';
import Project from './projects/MobileProject/project/Project';
import Contact from './contact/Contact';
import Job from './job/Job';
import Blog from './blog/Blog';
const fetch = require("node-fetch");
const API = "http://wp.mysite.in.ua";
function generatePostsRoutes() {
console.log("generating posts ...");
let posts = [];
fetch(API + "/wp-json/wp/v2/posts")
.then((response) => response.json())
.then(content => {
posts = content;
console.log(posts.map((value) => <Route exact path={"/blog/article/" + value.slug} component={Blog} />));
if(posts.length !== 0) {
return (
posts.map((value) => <Route exact path={"/blog/article/" + value.slug} component={Blog} />)
);
}
});
}
export default (
<Switch>
<Route exact path="/" component={HomePage}/>
<Route exact path="/projects" component={Projects}/>
<Route exact path="/project" component={Project}/>
<Route exact path="/blog" component={Blog}/>
<Route exact path="/blog/:sortId" component={Blog}/>
{
generatePostsRoutes()
}
<Route exact path="/job" component={Job}/>
<Route exact path="/contact" component={Contact}/>
</Switch>
);
这是我们想要在<url> <loc>http://mysite.in.ua/blog/:sortId</loc> </url> 之后添加博客链接的站点地图:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:news="http://www.google.com/schemas/sitemap-news/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0"
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"
xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
<url> <loc>http://mysite.in.ua/</loc> </url>
<url> <loc>http://mysite.in.ua/</loc> </url>
<url> <loc>http://mysite.in.ua/projects</loc> </url>
<url> <loc>http://mysite.in.ua/project</loc> </url>
<url> <loc>http://mysite.in.ua/blog</loc> </url>
<url> <loc>http://mysite.in.ua/blog/:sortId</loc> </url>
<url> <loc>http://mysite.in.ua/job</loc> </url>
<url> <loc>http://mysite.in.ua/contact</loc> </url>
</urlset>
感谢您的宝贵时间,如果您能帮助我们,我将非常高兴)
【问题讨论】:
-
这能回答你的问题吗? XML sitemap for react app
-
有没有办法基于“react-router-dom”路由器制作sitemap.xml?
标签: reactjs react-router server-side sitemap