/ / React.js - Динамичен каноничен url за всяка страница - javascript, responsejs, meteor, response-router

React.js - динамичен каноничен URL за всяка страница - javascript, reactjs, meteor, react-router

Използвам Vulcan.js за моя уебсайт и по подразбиране е задал за всички страници каноничен url да сочи към начална страница. Сега искам да настроя канонично да сочи към URL адрес на страница за всяка страница.

Използване на вулкан Реагирайте шлем за създаване на маркери за глава, ако това означава нещо за вас. Той също така използва Реагирайте маршрутизатора.

Това е текущият код, който имам:

  import React, { PropTypes, Component } from "react";
import Helmet from "react-helmet";
import Header from "./Header.jsx";


const canonical = window.location.href;  // this don"t work, says ReferenceError: window is not defined



const Layout = ({children}) =>

<div className="wrapper" id="wrapper">

<link rel="canonical" href={canonical} />

<Header/>

<div className="main">

{children}

</div>


</div>

export default Layout;

Така че грешката, която получих, е:

ReferenceError: прозорецът не е дефиниран

Не съм професионалист в React.js, така че не мога да разбера това сам. Но мисля, че това е лесно решение за някой, който е по-опитен от мен.

Всяка помощ ще бъде оценена.

Отговори:

0 за отговор № 1

Добре, така че сега знам, че проблемът е, защото прозорецът винаги ще бъде недефиниран от страна на сървъра.

Има обаче и друго решение.

Помолих за помощ и за Vulcan slack и ето го GitHub се ангажират с поправка.


0 за отговор № 2

Трябва да кажа, че подходът на "const canonical= window.location.href "не е начинът, по който трябва да дефинирате своя каноничен URL адрес. Едно нещо, което каноничният URL адрес казва на ботовете на търсачките, че ТОВА е РЕАЛНИЯ URL адрес на страницата, не винаги е същото като този, който потребителят дойде с. Ако използвате пренаписване на URL адреси и има повече от 1 начин да влезете в страницата, този подход ще ви създаде проблеми, тъй като каноничната (която трябва да бъде една) ще бъде зададена на въведената от потребителя стойност (или грешна връзка от някъде във вашата страница, или иначе ...). Друго нещо е, че каноничният URL адрес се използва за пренасочване на потребителя от страницата, на която е влязъл, ако не изглежда по същия начин, например опитайте да отидете на https://www.gsmarena.com/apple_iphone_7-8064.php и след това променете идентификационния номер от "8064" на "8858" -вижте какво се случва с URL адреса! Трябва да имате общ генератор на канонични URL адреси за вашите страници, който може да разреши пълния URL адрес, като използва някои строги данни на страницата (например идентификационен номер на телефона), а също така трябва да пренасочите потребителите към канонични URL адреси, ако са дошли с друг URL адрес. Повече информация: https://support.google.com/webmasters/answer/139066?hl=en