反应应用程序的XML站点地图

时间:2017-02-22 03:31:44

标签: xml reactjs sitemap google-sitemap

我有一个反应应用程序,我想添加一个sitemap.xml。我已添加此路由以链接到该文件(XML是我的sitemap.xml):

import XML from './sitemap.xml';    
<Route component={XML} path={'/sitemap.xml'} />

我一直收到这个错误,我理解这意味着我需要在我的webpack中添加一个xml加载器:

You may need an appropriate loader to handle this file type.

不确定如何选择xml加载器,因为我几乎可以找到解析器(xml到json),我不确定是否可以在json中使用站点地图。此外,是否有任何其他本机方式显示xml文件而不添加任何加载器?

3 个答案:

答案 0 :(得分:3)

如果您使用的是create-react-app,只需将您的XML文件放在公共文件夹(node_modules和src文件夹旁边的文件夹)中,然后通过{base_url}/{XML_file_name.xml}访问它(例如localhost:3000/sitemap.xml

答案 1 :(得分:1)

在,关键字组件应该是React组件。

查看文档:{​​{3}}

如果要将XML作为变量传递,则应将XML格式更改为字符串,并将其更改为component={}。要将XML转换为String,请在传递给Route之前使用escape(XML)。查看Route - React Router

使用import关键字,您可以尝试这样:

&#13;
&#13;
// file: get-xml.js
let transformXMLToString = () => {

  // read the target XML fiel and transform it to String
  
  // return the string
  return XMLasString;
};

export transformXMLToString;

// then you could import the XML like this in another file:

import transformXMLToString from 'get-xml.js';

// then pass it to <Route> like:

<Route component={transformXMLToString()}/>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

一个简单的解决方案是添加 <a href="XML_PATH" style={{display:"none"}}>xml</a> 然后检查您的 google chrome 开发控制台,搜索 anchor(a) 标签。 并遵循路径