Rails 仅限选定控制器的控制器特定资产

Rails controller specific assets for selected controllers only

我只想对某些控制器使用控制器特定资产,而不是对所有控制器。因此,我没有添加不需要单独文件的资产。但这会导致这些资源出现 404,因为它们不存在,例如我的 app/views/layouts/dashboard.html.erb 文件包含以下代码以生成特定于控制器的 js/css:

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

但是,我不想为管理控制器创建单独的文件,因为管理页面没有新的 css/js 要求。但是,应用程序尝试为控制器定位资产,但由于未找到它 returns 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)

应该怎么做才能防止这种情况发生?

此外,还有一些控制器显然不需要资产,例如注册控制器,http://0.0.0.0:3000/account/edit 页面

http://0.0.0.0:3000/stylesheets/store/registrations.css 导致 404

这是我在 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") %>