我有一个反应应用程序,我想添加一个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文件而不添加任何加载器?
答案 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
关键字,您可以尝试这样:
// 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;
答案 2 :(得分:0)
一个简单的解决方案是添加
<a href="XML_PATH" style={{display:"none"}}>xml</a>
然后检查您的 google chrome 开发控制台,搜索 anchor(a) 标签。
并遵循路径