问题标签 [server-rendering]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2483 浏览

ruby-on-rails - 使用 rails + react-rails gem + react 路由器进行服务器渲染

我创建了这个示例 repo,它使用 rails (v4.2.6) 和 react-rails (v1.6.2) 和 react-router (v2.0.0-rc5):https ://github.com/pioz/rails_with_react_and_react_router_example

在文件中app/views/application/react_entry_point.html.erb,我MountUp使用

该组件MountUp呈现我的路由器:

一切正常,但如果我更改选项,prerender: true我会收到一个奇怪的错误React::ServerRendering::PrerenderError in Application#react_entry_point

如何渲染此应用服务器端?这是正确的方法吗?

0 投票
0 回答
144 浏览

node.js - react-router RouterContext部署错误

我正在努力让我的通用 React Web 应用程序在服务器 (OpenShift) 上运行。我之前开发过其他通用应用程序,但从未遇到过这个错误:

React renderToString() 不变违规

基本上,当在服务器上运行时,RouterContext传递给 ReactDOM。renderToString () 未被识别为有效的 React 元素。

深入挖掘 renderToString 实现,在 localhost 我有RouterContext上下文类型的这个值:

本地主机路由器上下文类型

但是在服务器上我得到了这个:

生产路由器上下文类型

这就是为什么 React 在尝试创建 RouterContext 元素时会引发不变量违规的原因。

0 投票
1 回答
1387 浏览

javascript - react-router v2 - 替换 onEnter 不起作用

在我的应用程序中,我使用 react-router v2 - https://github.com/reactjs/react-router

我在重定向时遇到问题onEnter

一些组件

我正在使用服务器端渲染并使用了本指南 - https://github.com/reactjs/react-router/blob/master/docs/guides/ServerRendering.md#async-routes因为它说我需要使用match也在客户端:

客户端.js

路由.js

patchRouteHooks.js

在 onEnter 中替换后,我收到 renderPropsundefined导致控制台警告和损坏的应用程序:

在此处输入图像描述

有什么建议我做错了吗?谢谢!

0 投票
1 回答
4292 浏览

javascript - React 服务器渲染 --> 用新的根组件替换 React 渲染的子组件

我正在尝试渲染同构反应,它渲染但我在客户端收到警告/错误说:

我使用 jspm 和 npm 作为包管理器;

warning.js:25 Warning: render(...): Replacing React-rendered children with a new root component. If you intended to update the children of this node, you should instead have the existing children update their state and render the new components instead of calling ReactDOM.render.

服务器输出的源renderToString

渲染后用react替换的源:

快递服务器中间件:

index.html: _

我在这里使用 ect 作为模板引擎;

app.jsx: _

App/App.jsx: _

0 投票
1 回答
115 浏览

javascript - ReactRouter.match 在尝试服务器渲染反应元素时没有回调参数

我已尝试遵循本指南此问题,但是在ReactRouter.match触发时,所有回调参数都未定义。

这是我的服务器:

就像评论显示的一样,,,,error并且redirectLocation所有renderProps日志都为undefined

记录routes变量开始:

它以打字稿文件routes.tsx开始:

编译为es6/routes.js

我错过了什么?

0 投票
1 回答
329 浏览

javascript - 在服务器渲染期间存储/保持会话

我在使用以下启动 repo 时遇到了一个问题:react-webpack-node

我正在使用sessionStorage进行身份验证,并意识到由于此启动器的服务器渲染性质,我无法在应用程序在服务器上渲染时访问此会话数据,即保护我的路线,我希望以下工作:

但事实并非如此,我相信这是由于服务器上未定义会话。

0 投票
1 回答
1014 浏览

node.js - 使用 CDN 和 heroku 进行通用反应渲染

尝试设置一个服务器端(通用、同构)渲染的反应应用程序,该应用程序通过 CircleCI 部署,使用 Heroku 作为节点/快递应用程序,Cloudfront 作为 CDN。

我在概念化这将如何工作时遇到了一些麻烦。除了一些部分之外,流程似乎非常简单。一旦我们将构建的资产部署到像 CloudFront 这样的 CDN,我们如何将它们连接到我们在 Heroku 上的 index.html 文件?(此索引文件已构建并从 Heroku 节点应用程序提供,作为服务器端渲染的基础)。但我希望它包含指向 CDN 资产的链接,而不是 Heroku 构建的资产。(CircleCi 运行 webpack,Heroku 部署后也运行)

有没有人遇到过这个?

0 投票
1 回答
147 浏览

reactjs - React 服务器端渲染校验和警告

我有一个文件上传组件。

IE8:使用 iframe 进行文件上传。

Chrome:使用 FormData

在进行服务器渲染时,iframe 是在 HTML 中创建的。

当 Chrome 加载页面时,没有 iframe。

所以引起了警告:警告:React试图在容器中重用标记,但校验和无效

我的问题:如何处理这种情况?

0 投票
1 回答
432 浏览

node.js - 尝试服务器端渲染反应时得到“元素类型无效:预期字符串”

我收到此错误:

尝试使用时ReactDOMServer.renderToStaticMarkup

这是我的反应应用程序:

这是我的节点服务器渲染代码:

有谁知道导致此错误的原因以及如何解决此问题?

提前致谢。

0 投票
1 回答
119 浏览

angular - 谷歌无法索引 angular2 应用程序

angular2 版本:2.0.0-beta.14

您好,我们构建了一个几乎完全依赖于客户端 angular2 的 Web 应用程序,但是,自发布之日 - 3 天前 - 谷歌机器人无法正确索引页面。

当您从 google 的网络缓存中点击应用程序的起始页时,它会返回以下输出:

控制台错误

当这些错误弹出时,网段按预期工作。此外,可以正常访问网站而不会出错。如果您需要更多信息,请直接说。

任何帮助表示赞赏,感谢您的时间。