2016-03-14 31 views
1

我想僅針對某些控制器使用控制器特定資產,但不是所有控制器。因此,我沒有添加我不需要單獨文件的資產。但是這會導致404這些資源不存在,例如,我app/views/layouts/dashboard.html.erb文件包含下面的代碼生成器特定的JS/CSS:僅針對選定控制器的Rails控制器特定資產

<%= stylesheet_link_tag 'dashboard', params[:controller], media: 'all' %> 
<%= javascript_include_tag 'dashboard', params[:controller] %> 

不過,我不希望創建管理控制器單獨的文件,作爲管理員頁面已經不需要新的CSS/JS 。但是,應用程序試圖查找資產控制器和因爲沒有找到如下返回404:

GET http://dashboard.localhost.com:3000/stylesheets/dashboard/admins.css 404 (Not Found) 
GET http://dashboard.localhost.com:3000/javascripts/dashboard/admins.js 404 (Not Found) 

應該做些什麼來防止這種情況?

此外,有一些控制器顯然不需要資產,例如,註冊控制器,導致404 http://0.0.0.0:3000/stylesheets/store/registrations.csshttp://0.0.0.0:3000/account/edit

回答

1

這裏是我做的,我application.html.erb解決這個問題:

<%= stylesheet_link_tag 'dashboard' %> 
    <%= stylesheet_link_tag params[:controller] if InmonarchWebsite::Application.assets.find_asset("#{params[:controller]}.css") %> 
    <%= javascript_include_tag 'dashboard' %> 
    <%= javascript_include_tag params[:controller] if InmonarchWebsite::Application.assets.find_asset("#{params[:controller]}.js") %>