如何在不获取ActionController :: RoutingError的情况下删除Rails中未使用的css?

时间:2017-11-13 15:40:59

标签: ruby-on-rails routing ruby-on-rails-5 assets

我得到了名为Welcome的视图。我手动创建了这个。由于我不需要这个视图的css / js文件,我不想创建它们并将它们放到assets文件夹中。但是,我接着发现了这个错误:

Started GET "/javascripts/welcome.js" for ::1 at 2017-11-13 14:55:39 +0000

ActionController::RoutingError (No route matches [GET] "/javascripts/welcome.js"):

actionpack (5.0.0.rc2) lib/action_dispatch/middleware/debug_exceptions.rb:53:in `call'
web-console (2.3.0) lib/web_console/middleware.rb:28:in `block in call'
web-console (2.3.0) lib/web_console/middleware.rb:18:in `catch'
web-console (2.3.0) lib/web_console/middleware.rb:18:in `call'

这个错误:

ActionController::RoutingError (No route matches [GET] "/stylesheets/welcome.css"):
  Rendering /Users/ryzal/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0.rc2/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb within rescues/layout

actionpack (5.0.0.rc2) lib/action_dispatch/middleware/debug_exceptions.rb:53:in `call'
web-console (2.3.0) lib/web_console/middleware.rb:28:in `block in call'
web-console (2.3.0) lib/web_console/middleware.rb:18:in `catch'
web-console (2.3.0) lib/web_console/middleware.rb:18:in `call'

我可以通过简单地创建welcome.js和welcome.css文件并将它们放在资产上来消除这些错误。但是,我确实想这样做,因为我知道我不想要,也不想使用这些文件。

那么我该如何解决这个问题?

仅供参考,我的Rails应用程序没有失败。一切正常。我得到的错误出现在我的终端上。见下文:

enter image description here

这是我config/initializer/assets.rb

中的唯一内容
Rails.application.config.assets.version = '1.0'

2 个答案:

答案 0 :(得分:4)

在你的布局中:

<%= stylesheet_link_tag params[:controller] %>
<%= javascript_include_tag params[:controller] %>

这会强制您的应用程序为具有当前控制器名称的任何控制器加载资源(对于欢迎也是如此)。如果删除它,您的错误应该消失。请记住,此代码对其他控制器很有用,您可能会丢失一些样式/ javascripts。将它们全部包含在资产中的application.js / .css文件中。无需以动态方式单独加载资产

答案 1 :(得分:-2)

可能有一种更整洁的方式,但我会使用布局。

将布局分配给控制器中所需的页面,并在这些布局中需要您需要的文件:

http://brandonhilkert.com/blog/page-specific-javascript-in-rails/