Я сейчас создаю приложение React.Поскольку это SPA, у него есть один файл index.html.Я хочу добавить 2 тега "ld + json" script
, т.е. для обзоров и закладок для определенного маршрута.
Я ввел тег script
в componentDidMount
этого компонента, но Инструмент тестирования структурированных данных Google его не читает.
Это потому, что Google читает напрямую из index.html и поскольку мои script
теги связаны внутри main.js, он не может его прочитать?
Возможно ли это сделать на стороне клиентаРеагировать?Является ли серверная отрисовка единственным возможным способом сделать это?
- Подробное объяснение --- В настоящее время я хочу реализовать систему, подобную IMDB, т.е. всякий раз, когда мы ищем фильм в goole;результат поиска IMDB покажет рейтинг фильма на самих страницах Google.Для этого мне нужно поместить скрипт в мой файл index.html
<script type='application/ld+json'>
{
"@context": "http://schema.org/",
"@type": "Review",
"itemReviewed": {
"@type": "Thing",
"name": "Name"
},
"reviewRating": {
"@type": "Rating",
"ratingValue": "3",
"bestRating": "5"
},
"publisher": {
"@type": "Organization",
"name": "1234"
}
}
</script>
Поскольку мое приложение является SPA, я не могу поместить его в свой основной файл index.html.
Мой текущий подход: предположим, что маршрут "/ movies / inception" отображает компонент MovieDetail.Итак, в настоящее время я добавляю скрипт в конец этого компонента.
import React from 'react';
import JsonLd from '../path_to_JSONLD';
class MovieDetail extends React.Component {
render(){
let data = {
"@context": "http://schema.org/",
"@type": "Review",
"itemReviewed": {
"@type": "Thing",
"name": "Name"
},
"reviewRating": {
"@type": "Rating",
"ratingValue": "3",
"bestRating": "5"
},
"publisher": {
"@type": "Organization",
"name": "1234"
}
}
return(
<SOME COMPOENTS />
<JsonLd data={data} />
)
}
Мой компонент JsonLd
import React from 'react';
const JsonLd = ({ data }) =>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(data) }}
/>;
export default JsonLd;
Итак, когда я проверяю компонент;Я вижу динамически добавленный тег сценария.Но в инструменте тестирования структуры "https://search.google.com/structured-data/testing-tool". Он не показывает схему после проверки. Поэтому я спросил, может ли это быть сделано через клиентскую сторону, или SSR - единственное решение для этого, где я могу дать обновленный индекс.html в ответ.
Надеюсь, это устранит путаницу. Спасибо!