问题标签 [render-to-string]

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 投票
5 回答
53712 浏览

php - Laravel 错误:方法 Illuminate\View\View::__toString() 不得抛出异常

你在 Laravel 工作时见过这个可爱的错误吗?

我见过它,它非常烦人。我发现了引发此错误的两个原因。我只是想帮助人们不要花费数小时和数小时的时间。

查看下面的答案和情况。:)

0 投票
1 回答
272 浏览

django - Django 1.6 - 从视图导入/解析后解析模板标签

首先,我对 Django 比较陌生,所以如果我有一些基本的误解,请原谅我。我正在寻找解析一些作为 Django 渲染的一部分导入的 Django 模板标签。我看到的最终问题是 HTML/JS 部分被正确调用和显示,但最后一个 Django 标记在页面上呈现为纯文本。我意识到这是因为我在一个步骤之前渲染视图太早了,但我不确定如何正确地进行此操作。

这是基本的调用堆栈(简化):

模板1

模板2:

为 template2 中的上述 DATALIST 生成所需的 Django / HTML 的 python 代码:

上面的 python 被传递给 Django View.py:

现在,主要问题是显示的结果 HTML 可以很好地显示 HTML 和 JS,但 Django 模板标签以文本形式公开,并且不会将图表显示定向到所需的 div 中。例如 template2.html 被视为:

我尝试了一些不同的创可贴修复,但我宁愿了解如何正确地做到这一点。我尝试过但可能被误解的一件事是,在返回渲染步骤之前:

谢谢你的帮助。如果需要任何澄清,请告诉我!

0 投票
2 回答
996 浏览

python - Django 的 render_to_string 函数的 Flask 版本是什么?

因此,我正在尝试通过将此代码转换为 Flask 来学习 Flask 的 TDD。一段时间以来,我一直在尝试寻找如何将模板呈现为字符串。这是我尝试过的:

而且它们似乎都不起作用。

每种情况下的错误似乎是

intemplating.pyrender_template函数。

我的测试代码如下:

如下home.html

编辑:我添加了更多文件,因为错误可能与实际使用的功能无关。我正在使用Celeo在他的回答中所建议的内容。

0 投票
0 回答
637 浏览

ajax - 使用 django ajax 和 render_to_string 创建 iframe 内容

我正在尝试创建类似于 twitter 允许网站嵌入推文的可嵌入内容。

例如,twitter 允许用户复制粘贴存根 blockquote 和 javascript,在运行 js 时,将 blockquote 替换为内容的 iframe。

我做过类似的事情(我正在使用 django)

然后,widgets.js 脚本对 django 视图方法进行 ajax 调用,该方法调用 render_to_string 并为 iframe 加载所需的 HTML。如果返回简单的 HTML,那么一切都会完美运行,因为它只需要类似的东西iframe.get()[0].contentWindow.document.write(content)

但这是我的问题。我要加载的 HTML 需要 DataTables,而 DataTables 应该在 $(document).ready() 中初始化一个表。因为这是 iframe 内容,所以永远不会调用 document.ready() (据我所知)。目前,我已经能够通过将我的 javascript 放在 HTML 的最末尾来初始化 DataTable,但不能保证完成该 init 调用后 html 会完全加载。

最终的问题是时机。我需要动态生成的 iframe 内容(通过 django 模板使用 ajax 加载)在加载到 iframe之前执行其 javascript。

有没有办法强制执行这个时间?

0 投票
0 回答
42 浏览

c++ - 在编译时打印类型未知的数据 - 我可以在没有 switch(name_of_type) 的情况下执行此操作吗?

假设我需要实现一个具有以下签名的函数:

应该将len元素打印/流式传输buffer到输出流os。如果我在编译时有类型,那么显然我只会有

但我从其他地方得到缓冲区,只有一个字符串指示它们的类型。

显然我做不到

在 C++ 中。我该怎么做?我知道 C++ 没有反射,但我能比每次都在类型表中查找更好吗?还是使用字符串到type_infos 的静态映射?

笔记:

  • 我可以要求额外的元数据。
  • 我可以更改签名
  • 我在编译时无法获得任何其他信息。
0 投票
4 回答
24359 浏览

performance - React renderToString() 性能和缓存 React 组件

我注意到reactDOM.renderToString()在服务器上渲染大型组件树时,该方法开始显着减慢。

背景

一点背景。该系统是一个完全同构的堆栈。最高级别的App组件呈现模板、页面、dom 元素和更多组件。查看 react 代码,我发现它渲染了大约 1500 个组件(这包括任何被视为简单组件的简单 dom 标签,<p>this is a react component</p>.

在开发中,渲染约 1500 个组件需要约 200-300 毫秒。通过删除一些组件,我能够在约 175-225 毫秒内获得约 1200 个组件来渲染。

在生产中,大约 1500 个组件上的 renderToString 大约需要 50-200 毫秒。

时间似乎是线性的。没有一个组件是缓慢的,而是许多组件的总和。

问题

这会在服务器上产生一些问题。冗长的方法导致服务器响应时间长。TTFB 远高于应有的水平。对于 api 调用和业务逻辑,响应应该是 250 毫秒,但是对于 250 毫秒的 renderToString,它会加倍!对 SEO 和用户不利。此外,作为一种同步方法,renderToString()可以阻止节点服务器并备份后续请求(这可以通过使用 2 个独立的节点服务器来解决:1 个作为 Web 服务器,1 个作为单独渲染反应的服务)。

尝试

理想情况下,在生产环境中 renderToString 需要 5-50 毫秒。我一直在研究一些想法,但我不确定最好的方法是什么。

思路一:缓存组件

任何标记为“静态”的组件都可以被缓存。通过将缓存与渲染标记保持一致,renderToString()可以在渲染之前检查缓存。如果它找到一个组件,它会自动抓取字符串。在高级组件上执行此操作将保存所有嵌套子组件的安装。您必须将缓存的组件标记的反应 rootID 替换为当前的 rootID。

想法 2:将组件标记为简单/愚蠢

通过将组件定义为“简单”,react 应该能够在渲染时跳过所有生命周期方法。React 已经为核心的 react dom 组件( , 等)做到了这<p/>一点<h1/>。扩展自定义组件以使用相同的优化会很好。

想法 3:在服务器端渲染上跳过组件

不需要服务器返回的组件(没有 SEO 值)可以简单地在服务器上跳过。客户端加载后,设置一个clientLoaded标志true并将其传递下来以强制重新渲染。

关闭和其他尝试

到目前为止,我实现的唯一解决方案是减少在服务器上呈现的组件数量。

我们正在关注的一些项目包括:

有没有人遇到过类似的问题?你能做什么?谢谢。

0 投票
4 回答
109 浏览

java - 如何转换数字并将其存储在 char 数组中,然后将 char 数组转换为 String 以便打印整数?

我有一个存储了四个字符的 char 数组,我需要在 char 数组中添加一个整数,然后将 .txt 添加到 if 的末尾,然后将整个内容渲染为字符串,以便我可以使用它来创建文件对象. 但是当我运行整个过程时它不起作用。使用 println 输出每一步发生的事情,它向我显示存储在 char 数组中的数字正在打印为字符串,如下所示:( 0001 ) 而不仅仅是这个 (1)。为什么会这样,我该如何解决?我在这里输入了一段简短的代码来演示这个问题。下面的 printline 语句的输出是: temp 0001 .txt 而不是 temp1.txt 这是我想要得到的。谢谢你尽你所能的帮助。

0 投票
4 回答
17385 浏览

ruby-on-rails - Rails render_to_string

我在使用 rails render_to_string 函数时遇到了困难。我已经使用 --api 标志创建了一个应用程序,所以我认为这可能是问题所在,因为我已经在“完整”rails 应用程序中进行了测试,并且它的工作正常。

基本上我在打电话:

我也试过

它应该返回该模板的 html。文件名是 print.html.erb 并且只有基本数据,即

当我输出 body_html 它是空的。

我引用了这个 SO 问题What is the correct way to render_to_string in wicked pdf?我还将使用 Wicked PDF 生成 pdf 文件。

非常感谢

0 投票
1 回答
4211 浏览

javascript - 未捕获的类型错误:无法读取未定义的 React/Redux 的属性“类型”

我只是在学习 redux/reactjs。我正在尝试使用 redux 进行服务器端渲染但不幸的是我收到了这个错误。是的,那里有很多答案,但对我不起作用。 在此处输入图像描述

headerReducer.js

headerActions.js

减速器/index.js

0 投票
3 回答
353 浏览

node.js - 简单的服务器/客户端路由 react-express(nodejs)

App.js 有一个链接 - 我不明白我是否需要动作创建者/减少者?如果是这样,如何将它与服务器端渲染连接起来?

基本上加载 otherComponent - 应该通过路径从 server.js 进行 API 调用并将响应注入回组件 - 反应动作在这张图片中的位置是什么?

server.js: