我的网站上有一个管理部分,使用“管理员”布局。
class Admin::BaseController < ActionController::Base
layout "admin"
在layouts / admin.html.slim中
= stylesheet_link_tag "admin", :media => "all"
= javascript_include_tag "admin"
我收到admin.js和admin.css的错误
Started GET "/stylesheets/admin.css" for x.x.x.x at 2013-10-25 13:18:16 +0000
F, [2013-10-25T13:18:16.505425 #31550] FATAL -- :
ActionController::RoutingError (No route matches [GET] "/stylesheets/admin.css"):
这在开发中非常有效,并且前端资产在生产中正常加载,这可能是什么问题?
原因是您的Rails服务器(webrick,thin等)为您未编译的资产提供服务,并且在多个位置(例如app/assets
或vendor/assets
)寻找资产。在生产中,Rails假定生产Web服务器处理资产服务,这些资源是从提供的public/
。
由于在运行时进行编译(或完全不进行编译)会减慢页面的投放速度,因此会将它们编译为引用您的样式(默认情况下)的已知清单文件的名称application.{css/js}
,您可以通过调用来进行样式化rake assets:precompile
。
添加config.assets.precompile += %w( admin.css )
到config/application.rb
或者config/environments/production.rb
添加您的admin.css
清单,以便轨知道,它也有编译之一。然后运行rake assets:precompile
(如果稍后将其放入,则可能需要添加RAILS_ENV=production
)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句