<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>onizuka (Onizuka)</title>
    <link>https://ruby-china.org/onizuka</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>请问如何在 Rails production 环境下 reload assets 静态资源?</title>
      <description>&lt;h2 id="需求"&gt;需求&lt;/h2&gt;
&lt;p&gt;公司需要在后台动态维护一个字体库，管理员上传了 svg 后程序自动生成对应的字体文件，然后需要在不重新启动服务的情况下，让前端及时的加载。&lt;/p&gt;
&lt;h2 id="现有实现"&gt;现有实现&lt;/h2&gt;
&lt;p&gt;使用 fontcustom 来生成字体文件，然后调用 rake 来重新编译 assets 静态资源，再上传到 cdn 上。&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="no"&gt;Fontcustom&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Base&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;options&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;glyphs&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;compile&lt;/span&gt;
   &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="no"&gt;Rails&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;production?&lt;/span&gt;
     &lt;span class="n"&gt;rake_assets&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:clean&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
     &lt;span class="n"&gt;rake_assets&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:precompile&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
     &lt;span class="n"&gt;rake_assets&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:cdn&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
   &lt;span class="k"&gt;end&lt;/span&gt;
   &lt;span class="no"&gt;ActionController&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Base&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;view_paths&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;paths&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;first&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;clear_cache&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;以上代码是在队列中完成
最后一行是清除 view 的模板缓存，此时，模板确实会重新加载，但是 assets 的指纹码并没有更新，请问有什么方法或接口能让 rails 读新的指纹码？感觉是不是还漏了什么清除缓存的接口？&lt;/p&gt;</description>
      <author>onizuka</author>
      <pubDate>Fri, 15 Jul 2016 10:42:47 +0800</pubDate>
      <link>https://ruby-china.org/topics/30535</link>
      <guid>https://ruby-china.org/topics/30535</guid>
    </item>
  </channel>
</rss>
