2017-02-22 7 views
0

У меня есть приложение-приложение, для которого я хочу добавить файл sitemap.xml. Я добавил этот маршрут ссылки на файл (XML мой мой sitemap.xml):XML-карта сайта для приложения-приложения

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

я получаю эту ошибку, которую я понимаю, это означает, что мне нужно добавить XML-загрузчик в мой WebPack:

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

не знаю, как выбрать XML-загрузчик, как я мог в основном найти парсер (XML в JSON), и я не уверен, если это нормально, чтобы иметь карту сайта в формате JSON. Кроме того, есть ли другой собственный способ отображения xml-файла без добавления какого-либо загрузчика?

ответ

0

In, ключевой компонент должен быть компонентом React.

Проверьте документацию: Route - React Router


Если вы хотите передать XML в качестве переменной, вы должны изменить формат XML в строку и с другой опорой, но component={} .Чтобы преобразование XML в строку, RY escape(XML) перед передачей Маршрут! Проверить escape(str)


с import ключевым словом, Youcan попробовать, как это:

// 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()}/>

+0

Извините, я не уверен, как это делается. Я обновил маршрут тем, как я импортирую xml, в случае, если вы можете помочь с этой линией, или, возможно, с какой-либо ссылкой, которая поможет в этом? – aiiwa

+0

То, что я имею в виду, - это преобразовать XML в строковый тип и передать Route в виде строки, а затем преобразовать строку обратно в тип XML! @aiiwa –

+0

ну, попробовал побег, как было предложено (хотя его документировано как устаревшее), но он не работал. – aiiwa

0

Если вы используете создать реагирующий-приложение, просто поместите файл XML в общей папке (папку рядом с узлами node_modules и src), затем получить доступ к ней через {base_url}/{XML_file_name.xml} (например, localhost:3000/sitemap.xml)

Смежные вопросы