<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>zorajiang</title>
    <link>https://ruby-china.org/zorajiang</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>生产环境下，rake assets:precompile 后出现 TypeError: unknown filter type 错误</title>
      <description>&lt;p&gt;写在前面，贴的 log 比较多，刚学 ruby 还不懂怎么描述的专业些些，请轻喷～&lt;/p&gt;

&lt;p&gt;我在工程里用到了 rails_kindeditor 的 gem，并按 github 上  &lt;a href="https://github.com/Macrow/rails_kindeditor" rel="nofollow" target="_blank" title=""&gt;rails_kindeditor&lt;/a&gt;  上的步骤进行了配置，在开发环境中运行良好，但在生产环境下（ubuntu＋ passenger 5.0＋ nginx 1.8＋rails 4.2）错误如下：&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;bundle &lt;span class="nb"&gt;exec &lt;/span&gt;rake assets:precompile &lt;span class="nv"&gt;RAILS_ENV&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;production &lt;span class="nt"&gt;--trace&lt;/span&gt;
&lt;span class="k"&gt;**&lt;/span&gt; Invoke assets:precompile &lt;span class="o"&gt;(&lt;/span&gt;first_time&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;**&lt;/span&gt; Invoke assets:environment &lt;span class="o"&gt;(&lt;/span&gt;first_time&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;**&lt;/span&gt; Execute assets:environment
&lt;span class="k"&gt;**&lt;/span&gt; Invoke environment &lt;span class="o"&gt;(&lt;/span&gt;first_time&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;**&lt;/span&gt; Execute environment
&lt;span class="k"&gt;**&lt;/span&gt; Execute assets:precompile
rake aborted!
TypeError: unknown filter &lt;span class="nb"&gt;type&lt;/span&gt;: &lt;span class="c"&gt;#&amp;lt;Pathname:kindeditor/lang/zh_CN.js&amp;gt;&lt;/span&gt;
/usr/local/lib/ruby/gems/2.2.0/gems/sprockets-3.2.0/lib/sprockets/legacy.rb:296:in &lt;span class="sb"&gt;`&lt;/span&gt;compile_match_filter&lt;span class="s1"&gt;'
/usr/local/lib/ruby/gems/2.2.0/gems/sprockets-3.2.0/lib/sprockets/manifest.rb:125:in `block in find'&lt;/span&gt;
/usr/local/lib/ruby/gems/2.2.0/gems/sprockets-3.2.0/lib/sprockets/manifest.rb:125:in &lt;span class="sb"&gt;`&lt;/span&gt;map&lt;span class="s1"&gt;'
/usr/local/lib/ruby/gems/2.2.0/gems/sprockets-3.2.0/lib/sprockets/manifest.rb:125:in `find'&lt;/span&gt;
/usr/local/lib/ruby/gems/2.2.0/gems/sprockets-3.2.0/lib/sprockets/manifest.rb:162:in &lt;span class="sb"&gt;`&lt;/span&gt;compile&lt;span class="s1"&gt;'
/usr/local/lib/ruby/gems/2.2.0/gems/sprockets-rails-2.3.1/lib/sprockets/rails/task.rb:70:in `block (3 levels) in define'&lt;/span&gt;
/usr/local/lib/ruby/gems/2.2.0/gems/sprockets-3.2.0/lib/rake/sprocketstask.rb:147:in &lt;span class="sb"&gt;`&lt;/span&gt;with_logger&lt;span class="s1"&gt;'
/usr/local/lib/ruby/gems/2.2.0/gems/sprockets-rails-2.3.1/lib/sprockets/rails/task.rb:69:in `block (2 levels) in define'&lt;/span&gt;
/usr/local/lib/ruby/2.2.0/rake/task.rb:240:in &lt;span class="sb"&gt;`&lt;/span&gt;call&lt;span class="s1"&gt;'
/usr/local/lib/ruby/2.2.0/rake/task.rb:240:in `block in execute'&lt;/span&gt;
/usr/local/lib/ruby/2.2.0/rake/task.rb:235:in &lt;span class="sb"&gt;`&lt;/span&gt;each&lt;span class="s1"&gt;'
/usr/local/lib/ruby/2.2.0/rake/task.rb:235:in `execute'&lt;/span&gt;
/usr/local/lib/ruby/2.2.0/rake/task.rb:179:in &lt;span class="sb"&gt;`&lt;/span&gt;block &lt;span class="k"&gt;in &lt;/span&gt;invoke_with_call_chain&lt;span class="s1"&gt;'
/usr/local/lib/ruby/2.2.0/monitor.rb:211:in `mon_synchronize'&lt;/span&gt;
/usr/local/lib/ruby/2.2.0/rake/task.rb:172:in &lt;span class="sb"&gt;`&lt;/span&gt;invoke_with_call_chain&lt;span class="s1"&gt;'
/usr/local/lib/ruby/2.2.0/rake/task.rb:165:in `invoke'&lt;/span&gt;
/usr/local/lib/ruby/2.2.0/rake/application.rb:150:in &lt;span class="sb"&gt;`&lt;/span&gt;invoke_task&lt;span class="s1"&gt;'
/usr/local/lib/ruby/2.2.0/rake/application.rb:106:in `block (2 levels) in top_level'&lt;/span&gt;
/usr/local/lib/ruby/2.2.0/rake/application.rb:106:in &lt;span class="sb"&gt;`&lt;/span&gt;each&lt;span class="s1"&gt;'
/usr/local/lib/ruby/2.2.0/rake/application.rb:106:in `block in top_level'&lt;/span&gt;
/usr/local/lib/ruby/2.2.0/rake/application.rb:115:in &lt;span class="sb"&gt;`&lt;/span&gt;run_with_threads&lt;span class="s1"&gt;'
/usr/local/lib/ruby/2.2.0/rake/application.rb:100:in `top_level'&lt;/span&gt;
/usr/local/lib/ruby/2.2.0/rake/application.rb:78:in &lt;span class="sb"&gt;`&lt;/span&gt;block &lt;span class="k"&gt;in &lt;/span&gt;run&lt;span class="s1"&gt;'
/usr/local/lib/ruby/2.2.0/rake/application.rb:176:in `standard_exception_handling'&lt;/span&gt;
/usr/local/lib/ruby/2.2.0/rake/application.rb:75:in &lt;span class="sb"&gt;`&lt;/span&gt;run&lt;span class="s1"&gt;'
/usr/local/bin/rake:33:in `&amp;lt;main&amp;gt;'&lt;/span&gt;
Tasks: TOP &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; assets:precompile
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;界面上的表现则是加载不了 js 和 css 文件，nginx 的 errorlog 如下：&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;App 14026 stdout: Started GET &lt;span class="s2"&gt;"/stylesheets/application.css"&lt;/span&gt; &lt;span class="k"&gt;for &lt;/span&gt;119.49.5.203 at 2015-06-18 12:40:51 +0800
App 14026 stdout: 
App 14026 stdout: ActionController::RoutingError &lt;span class="o"&gt;(&lt;/span&gt;No route matches &lt;span class="o"&gt;[&lt;/span&gt;GET] &lt;span class="s2"&gt;"/stylesheets/application.css"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;:
App 14026 stdout:   actionpack &lt;span class="o"&gt;(&lt;/span&gt;4.2.1&lt;span class="o"&gt;)&lt;/span&gt; lib/action_dispatch/middleware/debug_exceptions.rb:21:in &lt;span class="sb"&gt;`&lt;/span&gt;call&lt;span class="s1"&gt;'
App 14026 stdout:   actionpack (4.2.1) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'&lt;/span&gt;
App 14026 stdout:   railties &lt;span class="o"&gt;(&lt;/span&gt;4.2.1&lt;span class="o"&gt;)&lt;/span&gt; lib/rails/rack/logger.rb:38:in &lt;span class="sb"&gt;`&lt;/span&gt;call_app&lt;span class="s1"&gt;'
App 14026 stdout:   railties (4.2.1) lib/rails/rack/logger.rb:20:in `block in call'&lt;/span&gt;
App 14026 stdout:   activesupport &lt;span class="o"&gt;(&lt;/span&gt;4.2.1&lt;span class="o"&gt;)&lt;/span&gt; lib/active_support/tagged_logging.rb:68:in &lt;span class="sb"&gt;`&lt;/span&gt;block &lt;span class="k"&gt;in &lt;/span&gt;tagged&lt;span class="s1"&gt;'
App 14026 stdout:   activesupport (4.2.1) lib/active_support/tagged_logging.rb:26:in `tagged'&lt;/span&gt;
App 14026 stdout:   activesupport &lt;span class="o"&gt;(&lt;/span&gt;4.2.1&lt;span class="o"&gt;)&lt;/span&gt; lib/active_support/tagged_logging.rb:68:in &lt;span class="sb"&gt;`&lt;/span&gt;tagged&lt;span class="s1"&gt;'
App 14026 stdout:   railties (4.2.1) lib/rails/rack/logger.rb:20:in `call'&lt;/span&gt;
App 14026 stdout:   actionpack &lt;span class="o"&gt;(&lt;/span&gt;4.2.1&lt;span class="o"&gt;)&lt;/span&gt; lib/action_dispatch/middleware/request_id.rb:21:in &lt;span class="sb"&gt;`&lt;/span&gt;call&lt;span class="s1"&gt;'
App 14026 stdout:   rack (1.6.1) lib/rack/methodoverride.rb:22:in `call'&lt;/span&gt;
App 14026 stdout:   rack &lt;span class="o"&gt;(&lt;/span&gt;1.6.1&lt;span class="o"&gt;)&lt;/span&gt; lib/rack/runtime.rb:18:in &lt;span class="sb"&gt;`&lt;/span&gt;call&lt;span class="s1"&gt;'
App 14026 stdout:   activesupport (4.2.1) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'&lt;/span&gt;
App 14026 stdout:   actionpack &lt;span class="o"&gt;(&lt;/span&gt;4.2.1&lt;span class="o"&gt;)&lt;/span&gt; lib/action_dispatch/middleware/static.rb:113:in &lt;span class="sb"&gt;`&lt;/span&gt;call&lt;span class="s1"&gt;'
App 14026 stdout:   rack (1.6.1) lib/rack/sendfile.rb:113:in `call'&lt;/span&gt;
App 14026 stdout:   railties &lt;span class="o"&gt;(&lt;/span&gt;4.2.1&lt;span class="o"&gt;)&lt;/span&gt; lib/rails/engine.rb:518:in &lt;span class="sb"&gt;`&lt;/span&gt;call&lt;span class="s1"&gt;'
App 14026 stdout:   railties (4.2.1) lib/rails/application.rb:164:in `call'&lt;/span&gt;
App 14026 stdout:   passenger &lt;span class="o"&gt;(&lt;/span&gt;5.0.10&lt;span class="o"&gt;)&lt;/span&gt; lib/phusion_passenger/rack/thread_handler_extension.rb:94:in &lt;span class="sb"&gt;`&lt;/span&gt;process_request&lt;span class="s1"&gt;'
App 14026 stdout:   passenger (5.0.10) lib/phusion_passenger/request_handler/thread_handler.rb:149:in `accept_and_process_next_request'&lt;/span&gt;
App 14026 stdout:   passenger &lt;span class="o"&gt;(&lt;/span&gt;5.0.10&lt;span class="o"&gt;)&lt;/span&gt; lib/phusion_passenger/request_handler/thread_handler.rb:110:in &lt;span class="sb"&gt;`&lt;/span&gt;main_loop&lt;span class="s1"&gt;'
App 14026 stdout:   passenger (5.0.10) lib/phusion_passenger/request_handler.rb:414:in `block (3 levels) in start_threads'&lt;/span&gt;
App 14026 stdout:   passenger &lt;span class="o"&gt;(&lt;/span&gt;5.0.10&lt;span class="o"&gt;)&lt;/span&gt; lib/phusion_passenger/utils.rb:111:in &lt;span class="sb"&gt;`&lt;/span&gt;block &lt;span class="k"&gt;in &lt;/span&gt;create_thread_and_abort_on_exception&lt;span class="s1"&gt;'
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我已经运行过 rake kindeditor:assets，public/assets 下也已经存在 kindeditor/lang/zh_CN.js&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ls&lt;/span&gt; public/assets/kindeditor/
kindeditor.js  lang  plugins  themes
&lt;span class="nv"&gt;$ls&lt;/span&gt; public/assets/kindeditor/lang
ar.js  en.js  ko.js  zh_CN.js  zh_TW.js
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;上网找了下 TypeError: unknown filter type 的解决办法，找到了这个帖子 &lt;a href="https://github.com/sstephenson/sprockets/issues/723" rel="nofollow" target="_blank" title=""&gt;TypeError: unknown filter type: #&lt;/a&gt;&lt;a rel="nofollow" target="_blank"&gt;Pathname:spree/backend/all.js&lt;/a&gt; , 但还是木有解决我的问题啊&lt;img title=":sob:" alt="😭" src="https://twemoji.ruby-china.com/2/svg/1f62d.svg" class="twemoji"&gt;&lt;/p&gt;

&lt;p&gt;后来我将 rails_kindeditor 换成了 ckeditor，重新部署了一次，可以正常 precompile，页面也表现正常了。但是，总觉得不应该是 rails_kindeditor 导致的问题，可能是我的 config 配置有问题？&lt;img title=":pray:" alt="🙏" src="https://twemoji.ruby-china.com/2/svg/1f64f.svg" class="twemoji"&gt; 大家帮忙分析下～&lt;/p&gt;</description>
      <author>zorajiang</author>
      <pubDate>Thu, 18 Jun 2015 13:09:39 +0800</pubDate>
      <link>https://ruby-china.org/topics/26085</link>
      <guid>https://ruby-china.org/topics/26085</guid>
    </item>
  </channel>
</rss>
