我以为我应该发送"text/xml",但后来我读到我应该发送"application/xml".有关系吗?有人可以解释这个区别吗?
我使用 VueJS 而不使用 Vue CLI。我想sitemap.xml向我的路由器添加一个,但我很难理解如何使用该vue-router-sitemap库。
我已经尝试使用提到的代码,但它没有指定应该添加到哪里。
import VueRouterSitemap from 'vue-router-sitemap';
import path from 'path';
import { router } from 'router';
...
export const sitemapMiddleware = () => {
return (req, res) => {
res.set('Content-Type', 'application/xml');
const staticSitemap = path.resolve('dist/static', 'sitemap.xml');
const filterConfig = {
isValid: false,
rules: [
/\/example-page/,
/\*/,
],
};
new VueRouterSitemap(router).filterPaths(filterConfig).build('http://example.com').save(staticSitemap);
return res.sendFile(staticSitemap);
};
};
app.get('/sitemap.xml', sitemapMiddleware());
Run Code Online (Sandbox Code Playgroud)
如果我将此文件添加到任何位置,则该app变量不存在(正如我所期望的那样)。我假设这必须放置在特定的地方。
我找不到任何其他关于如何执行此操作的示例,并且有关此库的其他问题在 reddit 或 stackoverflow 上仍未得到解答。
sitemap.xml向 VueJS 项目添加 a 的正确方法是什么?
我有一个反应应用程序,我想为其添加一个 sitemap.xml。我已添加此路由以链接到文件(XML 是我的 sitemap.xml):
import XML from './sitemap.xml';
<Route component={XML} path={'/sitemap.xml'} />
Run Code Online (Sandbox Code Playgroud)
我一直收到这个错误,我明白这意味着我需要向我的 webpack 添加一个 xml 加载器:
You may need an appropriate loader to handle this file type.
Run Code Online (Sandbox Code Playgroud)
不知道如何选择 xml 加载器,因为我主要可以找到解析器(xml 到 json),我不确定在 json 中是否可以使用站点地图。另外,是否有任何其他本机方式可以在不添加任何加载程序的情况下显示 xml 文件?
我有这个网站,我们可以提出新问题。每当创建新问题时,都会生成新的网址,我希望每次添加新问题时谷歌都会抓取我的网站并将其显示在谷歌中。
我的前端在react js,后端在express js。
我的前端托管在firebase,后端托管在heroku。
由于我使用的是 javascript 并且我的网址都是动态生成的,因此谷歌不会抓取或索引它们。
目前,我正在将所有动态创建的网址写入后端根文件夹中名为sitemap.txt.
我应该怎么做才能实现这个目标?
我的站点地图链接 https://ask-over.herokuapp.com/sitemap.txt
我的反应应用程序链接 https://wixten.com
我的express.js 链接 https://ask-over.herokuapp.com
我想将 https://ask-over.herokuapp.com/sitemap.txt添加到 google 搜索控制台
注意:这不是关于站点地图的工作原理,或者站点地图结构的外观,也不是与 SEO 相关的问题。
我的域mysite.com和mysite.pt是同一站点的 2 种语言版本(EN、PT)。内容通过数据库驱动的 CMS 动态添加/删除。
每个菜单/类别更新都会创建其特定于语言的路由,例如:mysite.com/beach和mysite.pt/praia,其中两者都创建指向同一控制器的路由,例如site_manager/page/beaches.
每个语言版本的代码库是相同的,因此所有语言版本只有一个 /application、/assets 和 /system 文件夹。该语言的具体内容是通过加载<?=$this->lang->line('my_token1')?>
文件系统如下所示:
/public_html
/mysite.com/index.php
/mysite.pt/index.php
/all_sites/application
/all_sites/assets
/all_sites/system
Run Code Online (Sandbox Code Playgroud)
两个站点的路由目录中的 index.php 文件更改系统和应用程序文件夹位置:
$system_path = '/home/my_host/public_html/all_sites/system';
$application_folder = '/home/my_host/public_html/all_sites/application';
Run Code Online (Sandbox Code Playgroud)
此设置工作顺利。但是 CMS 很旧,并且不会在菜单或内容更改时创建更新的站点地图。
所以我想了另一种提供更新的站点/特定语言的方法sitemap.xml:当机器人来扫描站点时,可以即时创建站点地图并为机器人提供最新的sitemap.xml
我通过创建一个控制器方法解决了这个问题,该方法site_manager/sitemap()解析数据库条目并输出一个站点地图echo $this->load->view('sitemap',$data,true);
哪些输出,取决于站点:
<!-- created by mysite.pt, 2020-12-22 -->
<url>
<loc>https:// mysite.pt/</loc>
<lastmod>2020-12-22T20:53:36+00:00</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https:// mysite.pt/praias.html</loc>
<lastmod>2020-12-22T19:51:51+00:00</lastmod>
<priority>0.80</priority>
</url>
Run Code Online (Sandbox Code Playgroud)
或者
<!-- created …Run Code Online (Sandbox Code Playgroud) 我使用过 Wordpress 的插件,它会在您每次发布新帖子时通知一些搜索引擎。然而,我正在考虑开发一个用户提交内容的网站,我如何使用 PHP 通过 XML 站点地图(或类似方法)通知 Google 站点更改发生时,以便用户提交可以快速搜索/索引由谷歌。
我有一个 sitemap.xml 文件,我想在用户点击www.mysite.com/sitemap.xml路线时显示它。我怎样才能做到这一点?我正在使用react 和react-router-dom。
xml-sitemap ×7
reactjs ×3
sitemap ×3
php ×2
seo ×2
xml ×2
.htaccess ×1
codeigniter ×1
express ×1
mime-types ×1
vue-router ×1
vue.js ×1
vuejs2 ×1