#node.js #reactjs
#node.js #reactjs
Вопрос:
Извините, это трудно объяснить, и именно поэтому я не уверен, как это исправить.
Я пытаюсь выполнить рендеринг на стороне сервера с помощью React, и для начала я удалил все JS на стороне клиента, так что это просто CSS и статический HTML.
Я заметил, что когда я открываю localhost, мой сервер сообщает, что он дважды запускается для root. Я проверил сетевую панель Chrome и увидел вторую строку для «localhost», за исключением того, что вторая строка имеет тип «текст / html» вместо document.
Мой первый вопрос: как это возможно без JS?
Мой второй вопрос: как мне это остановить?
что показывает сеть Chrome (обратите внимание на второй локальный хост внизу):
HTML, возвращаемый моим сервером: (сверхдлинная строка — это только мои статьи, и она не будет html-инициатором захвата второго HTML-документа)
<html lang="en" data-reactroot="" data-reactid="1" data-react-checksum="1083304721">
<head data-reactid="2">
<title data-reactid="3">Jayeh - Jasons tech and opinions</title>
<link rel="stylesheet" href="/dist/base.css" data-reactid="4"/>
<link rel="stylesheet" href="/dist/default.css" data-reactid="5"/>
<link rel="stylesheet" href="/node_modules/font-awesome/css/font-awesome.min.css" data-reactid="6"/>
<link rel="stylesheet" href="/dist/styles/codepen-embed.css" data-reactid="7"/>
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Open Sans" data-reactid="8"/>
</head>
<body data-reactid="9">
<div data-reactid="10">
<span style="font-family:Baskerville;font-size:36px;padding-right:10px;padding-left:10px;border-right:solid 2px grey;border-bottom:solid 2px grey;" data-reactid="11">Blog</span>
<div style="margin-left:5%;max-width:800px;height:120px;" data-reactid="12"><a class="blackReadable" href="/article/t/${article.title}" data-reactid="13"><div style="position:relative;width:100%;height:100%;background-image:url(amp;#x27;/dist/header1.jpgamp;#x27;);background-size:100%;font-family:Open Sans;border:1px dashed maroon;margin-top:5px;margin-bottom:5px;" data-reactid="14"><p style="font-size:2em;" data-reactid="15">Q Avoiding State on The Web</p><p style="font-size:1em;margin-left:4em;" data-reactid="16">I discuss a saner way to program</p><p style="position:absolute;right:0;bottom:0;" data-reactid="17"><!-- react-text: 18 -->Created On: <!-- /react-text --><!-- react-text: 19 -->Thu Feb 18 2016<!-- /react-text --></p></div></a></div><div style="margin-left:5%;max-width:800px;height:120px;" data-reactid="20"><a class="blackReadable" href="/article/t/${article.title}" data-reactid="21"><div style="position:relative;width:100%;height:100%;background-image:url(amp;#x27;amp;#x27;);background-size:100%;font-family:Open Sans;border:1px dashed maroon;margin-top:5px;margin-bottom:5px;" data-reactid="22"><p style="font-size:2em;" data-reactid="23">subarticle</p><p style="font-size:1em;margin-left:4em;" data-reactid="24"></p><p style="position:absolute;right:0;bottom:0;" data-reactid="25"><!-- react-text: 26 -->Created On: <!-- /react-text --><!-- react-text: 27 -->Wed Dec 31 1969<!-- /react-text --></p></div></a></div><div style="margin-left:5%;max-width:800px;height:120px;" data-reactid="28"><a class="blackReadable" href="/article/t/${article.title}" data-reactid="29"><div style="position:relative;width:100%;height:100%;background-image:url(amp;#x27;amp;#x27;);background-size:100%;font-family:Open Sans;border:1px dashed maroon;margin-top:5px;margin-bottom:5px;" data-reactid="30"><p style="font-size:2em;" data-reactid="31">blargy</p><p style="font-size:1em;margin-left:4em;" data-reactid="32"></p><p style="position:absolute;right:0;bottom:0;" data-reactid="33"><!-- react-text: 34 -->Created On: <!-- /react-text --><!-- react-text: 35 -->Thu Feb 18 2016<!-- /react-text --></p></div></a></div><div style="margin-left:5%;max-width:800px;height:120px;" data-reactid="36"><a class="blackReadable" href="/article/t/${article.title}" data-reactid="37"><div style="position:relative;width:100%;height:100%;background-image:url(amp;#x27;/dist/header2.pngamp;#x27;);background-size:100%;font-family:Open Sans;border:1px dashed maroon;margin-top:5px;margin-bottom:5px;" data-reactid="38"><p style="font-size:2em;" data-reactid="39">Avoiding State on The Web</p><p style="font-size:1em;margin-left:4em;" data-reactid="40">I discuss saner way to program</p><p style="position:absolute;right:0;bottom:0;" data-reactid="41"><!-- react-text: 42 -->Created On: <!-- /react-text --><!-- react-text: 43 -->Invalid Date<!-- /react-text --></p></div></a></div><div style="margin-left:5%;max-width:800px;height:120px;" data-reactid="44"><a class="blackReadable" href="/article/t/${article.title}" data-reactid="45"><div style="position:relative;width:100%;height:100%;background-image:url(amp;#x27;/dist/header1.pngamp;#x27;);background-size:100%;font-family:Open Sans;border:1px dashed maroon;margin-top:5px;margin-bottom:5px;" data-reactid="46"><p style="font-size:2em;" data-reactid="47">Avoiding State on The Web</p><p style="font-size:1em;margin-left:4em;" data-reactid="48">I discuss a saner way to program</p><p style="position:absolute;right:0;bottom:0;" data-reactid="49"><!-- react-text: 50 -->Created On: <!-- /react-text --><!-- react-text: 51 -->Invalid Date<!-- /react-text --></p></div></a></div><div style="margin-left:5%;max-width:800px;height:120px;" data-reactid="52"><a class="blackReadable" href="/article/t/${article.title}" data-reactid="53"><div style="position:relative;width:100%;height:100%;background-image:url(amp;#x27;/dist/header1.pngamp;#x27;);background-size:100%;font-family:Open Sans;border:1px dashed maroon;margin-top:5px;margin-bottom:5px;" data-reactid="54"><p style="font-size:2em;" data-reactid="55">ZZZAvoiding State on The Web</p><p style="font-size:1em;margin-left:4em;" data-reactid="56">I discuss a saner way to program</p><p style="position:absolute;right:0;bottom:0;" data-reactid="57"><!-- react-text: 58 -->Created On: <!-- /react-text --><!-- react-text: 59 -->Invalid Date<!-- /react-text --></p></div></a></div><div style="margin-left:5%;max-width:800px;height:120px;" data-reactid="60"><a class="blackReadable" href="/article/t/${article.title}" data-reactid="61"><div style="position:relative;width:100%;height:100%;background-image:url(amp;#x27;/dist/header1.jpgamp;#x27;);background-size:100%;font-family:Open Sans;border:1px dashed maroon;margin-top:5px;margin-bottom:5px;" data-reactid="62"><p style="font-size:2em;" data-reactid="63">Avoiding State on The Web</p><p style="font-size:1em;margin-left:4em;" data-reactid="64">I discuss a saner way to program</p><p style="position:absolute;right:0;bottom:0;" data-reactid="65"><!-- react-text: 66 -->Created On: <!-- /react-text --><!-- react-text: 67 -->Invalid Date<!-- /react-text --></p></div></a></div><div style="margin-left:5%;max-width:800px;height:120px;" data-reactid="68"><a class="blackReadable" href="/article/t/${article.title}" data-reactid="69"><div style="position:relative;width:100%;height:100%;background-image:url(amp;#x27;https://jayehtest.s3.amazonaws.com/Screen Shot 2016-09-15 at 12.32.07 PM.pngamp;#x27;);background-size:100%;font-family:Open Sans;border:1px dashed maroon;margin-top:5px;margin-bottom:5px;" data-reactid="70"><p style="font-size:2em;" data-reactid="71"> Redux Game Development</p><p style="font-size:1em;margin-left:4em;" data-reactid="72">and how to over complicate physics</p><p style="position:absolute;right:0;bottom:0;" data-reactid="73"><!-- react-text: 74 -->Created On: <!-- /react-text --><!-- react-text: 75 -->Sat Sep 17 2016<!-- /react-text --></p></div></a></div>
</div>
<p style="margin-top:100px;text-align:right;" data-reactid="76">jayeh.ca © 2016 (Jason McCarrell)</p>
</body>
</html>
Комментарии:
1. Невозможно сказать, не глядя на ваш html-источник.
2. Я добавил html и скриншот сетевой панели Chrome
3. Это все еще открыто, но это определенно не блокирует меня. С тех пор мне удалось эффективно сделать мой блог полностью изоморфным. Одна дополнительная загрузка HTML ничего не повредит.