rails app在activeadmin中非常奇怪的错误

时间:2016-01-09 21:21:55

标签: javascript ruby-on-rails ruby ruby-on-rails-4

我的简单rails 4.2.5应用程序中有一个错误我在Windows上破坏了应用程序。我有一个活跃的admin gem,并且在我按照教程here排除了在Rails应用程序中加载active_admin JS和CSS之后,工作正常。我将重复tuturial所说的内容,以防链接发生变化:

创建文件夹app / assets / javascripts / admin和app / assets / stylesheets / admin,并将文件active_admin.js和active_admin.css.scss分别移动到这些文件夹中。

创建文件夹app / assets / javascripts / admin和app / assets / stylesheets / admin,并将文件active_admin.js和active_admin.css.scss分别移动到这些文件夹中。

在您的app / assets / stylesheets / application.css.scss中,您会发现以下顶部附近:

 *= require_self
 *= require_true .

将其更改为:

 *= require_self
 *= require_directory .

对application.js执行相同的操作。

重新包含活动管理员中的文件 罪魁祸首是active_admin的asset_registration.rb和application.rb:

def register_default_assets
  register_stylesheet 'active_admin.css'
  register_javascript 'active_admin.js'
end

要清除这些并用新文件替换它们,请将以下内容添加到config / initializers / active_admin.rb的底部:

config.clear_stylesheets!
config.register_stylesheet 'admin/active_admin.css'

config.clear_javascripts!
config.register_javascript 'admin/active_admin.js'

Heroku部署问题 部署到heroku时,您可能会在日志中看到类似的内容:

Started GET "/admin/login" for 146.115.108.146 at 2011-12-22 16:03:32 +0000

ActionView::Template::Error (admin/active_admin.css isn't precompiled):
    6:   <title><%= [

    7: 
    8:   <% ActiveAdmin.application.stylesheets.each do |path| %>
    9:     <%= stylesheet_link_tag path %>
    10:   <% end %>



    12:     <%= javascript_include_tag path %>
    11:   <% ActiveAdmin.application.javascripts.each do |path| %>

如本期所述,需要对文件进行预编译以进行生产。将以下内容添加到application.rb(或选择的配置文件):

config.assets.precompile += %w[admin/active_admin.css admin/active_admin.js]

我完成了该教程中的内容但是当我访问http://localhost:3000/admin时,我发现这个中文字符有一个非常奇怪的错误,它会重定向到http://localhost:3000/admin/login并显示此错误 757意外令牌:...(我无法将错误粘贴为文本,因为堆栈溢出垃圾邮件过滤器不允许使用中文字符。)  enter image description here enter image description here

base.js.coffee中的

#= require jquery
#= require ./jquery_ui
#= require jquery_ujs
#= require_self
#= require_tree ./lib
#= require_tree ./ext
#= require ./application

window.ActiveAdmin = {}

请问任何想法?

1 个答案:

答案 0 :(得分:2)

经过非常努力,这对我来说是解决方案:

config / initializers / active_admin.rb中的

:  改变这个:

 config.clear_stylesheets!
config.register_stylesheet 'admin/active_admin.css'

config.clear_javascripts!
config.register_javascript 'admin/active_admin.js'

到此:

config.clear_stylesheets!
config.register_stylesheet 'admin/active_admin'

config.clear_javascripts!
config.register_javascript 'admin/active_admin'

在config / initializers / assets.rb中添加:

Rails.application.config.assets.precompile += %w( admin/active_admin.js )
Rails.application.config.assets.precompile += %w( admin/active_admin.css )

config / application.rb已删除:

   config.assets.precompile += %w( /admin/active_admin.css.scss )
    config.assets.precompile += %w( /admin/active_admin.js.coffee )