【发布时间】:2014-07-02 23:19:47
【问题描述】:
在我的开发机器上:
Windows 8.1
Ruby 2.0
Rails 4.1
Bootstrap 3
在我的生产机器上:
Ubuntu 12.4
Ruby 2.1.1
Rails 4.1
Bootstrap 3
这是我的代码:
<td>
<%= link_to my_model, class: 'btn btn-info' do %>
<span class="glyphicon glyphicon-search"></span>
<% end %>
</td>
<td>
<%= link_to [:edit, my_model], class: 'btn btn-warning' do %>
<span class="glyphicon glyphicon-pencil"></span>
<% end %>
</td>
<td>
<%= link_to my_model, method: :delete, data: { confirm: 'Are you sure?' }, class: 'btn btn-danger' do %>
<span class="glyphicon glyphicon-remove"></span>
<% end %>
</td>
这些图形在我的开发机器上显示良好,但在生产机器上却没有。附上图片。有什么想法吗?
预编译:
我忘了补充一下,我预编译如下:
RAILS_ENV=production bundle exec rake assets:precompile
检查元素:
当我检查这些元素时,萤火虫是这样说的。它们是一样的:
用于生产的 Firebug 检查:
<td>
<a class="btn btn-info" href="/agents/1">
<span class="glyphicon glyphicon-search"></span>
</a>
</td>
用于开发的 Firebug 检查:
<td>
<a class="btn btn-info" href="/agents/1">
<span class="glyphicon glyphicon-search"></span>
</a>
</td>
答案:
看起来我正在处理一个已知的 Rails 4.1 问题。解决办法是:
-
在environments/production.rb中有以下设置:
config.assets.compile = true
-
预编译资产如下:
RAILS_ENV=production bundle exec rake assets:precompile
预编译资产将防止动态资产重新编译。我对其进行了测试,它现在可以在我的 ubuntu 4.1 服务器上运行
【问题讨论】:
-
开发者控制台中的任何错误?
-
开发者控制台?问题出在生产服务器上,而不是开发环境上。
-
是的开发者控制台!您在浏览器上检查元素的那个,它与您的终端不同:)
-
您是在谈论 Rails 控制台,如 rails c RAILS_ENV=production,还是使用我的本地浏览器检查元素?
-
您的浏览器控制台,您可以在其中检查 js 错误、萤火虫或只是您使用过的本地浏览器控制台
标签: ruby-on-rails twitter-bootstrap-3 ruby-on-rails-4.1