准备测试:
sleep 10在行动中
测试: 在浏览器中打开两个选项卡以访问操作
结果: 第二个请求运行时,第一个请求完成并开始呈现视图,但视图仍为空白.第二个请求完成后,两个请求同时完成了渲染视图.
结论: Rails只是一个单一的实例.一个请求只能在先前的请求完成后进入操作.但如何解释响应部分?为什么多请求会同时完成呈现视图?
我的Mailer模板中的视图助手为我提供了样式表和图像的相对URL.当然,如果我在Gmail中查看电子邮件,这将无效.
在 apps/views/layouts/mailer.html.erb
<%= stylesheet_link_tag "application" %>
...
<%= link_to(image_tag("logo.png"), "http://mysite.com") %>
Run Code Online (Sandbox Code Playgroud)
呈现为:
<link href="/assets/application-c90478153616a4165babd8cc6f4a28de.css" media="screen" rel="stylesheet" type="text/css" />
...
<a href="http://mysite.com"><img alt="Logo" src="/assets/logo-d3adbf8d0a7f7b6473e2130838635fed.png" /></a>
Run Code Online (Sandbox Code Playgroud)
我如何让Rails给我绝对链接呢?我在Rails 3.1上,资产管道生效.
我想将网页呈现为PDF.它使用单个图像,我读过你需要提供PDFkit的绝对URL才能使用图像,所以我的代码是:
= image_tag image_url(user.avatar)
Run Code Online (Sandbox Code Playgroud)
这在以HTML格式查看时有效,并且PDFkit能够生成删除了图像的PDF.但是,在使用图像时,它会挂起,直到我杀死服务器.我怎样才能让它发挥作用?
这是杀死服务器时的完整输出:
2013-12-04 13:53:36.576 wkhtmltopdf[27410:507] CoreText performance note: Client called CTFontCreateWithName() using name "Arial" and got font with PostScript name "ArialMT". For best performance, only use PostScript names when calling this API.
2013-12-04 13:53:36.577 wkhtmltopdf[27410:507] CoreText performance note: Set a breakpoint on CTFontLogSuboptimalRequest to debug.
2013-12-04 13:53:36.582 wkhtmltopdf[27410:507] CoreText performance note: Client called CTFontCreateWithName() using name "Arial" and got font with PostScript name "ArialMT". For best performance, only use PostScript names when calling this API.
2013-12-04 …Run Code Online (Sandbox Code Playgroud)