链接问题,获取消息'ie.css未预编译'

时间:2013-05-30 11:06:48

标签: ruby-on-rails deployment

我正在尝试修改我的链接:

http://92.51.243.6/

不知道为什么他们不工作。我正在谈论的链接是页面顶部的“主页”和“关于”。在本地WEBrick模式下一切正常。我听说Ajax可能是问题,所以我拿出了:remote =>从这些链接中获取true,并禁用文件scripts.js中的ajax,它负责处理我的ajax。

链接中的代码是:

    <div id = "menu">
      <ul id = "home_page_links">
        <li><%= link_to "Home",about_us_path %></li>
        <li><%= link_to "About Us",about_us_path  %></li>
      </ul>
    </div>

在我的routes.rb文件中,我有:

QuestionnaireSite::Application.routes.draw do

  get "home", :to => "static_pages#about_us"
  get "about_us", :to => "static_pages#about_us"

我收到的消息,“我们很抱歉,但出现了问题”是我公共文件夹中的错误页面。

当我跑步时:

tail -f /var/www/apps/myapp/current/log/production.log

我明白了:

Started GET "/users/sign_in" for 87.198.119.247 at Thu May 30 10:52:04 +0100 2013
Processing by Devise::SessionsController#new as HTML
  Rendered users/sessions/new.html.erb within layouts/devise (4.4ms)
  Rendered layouts/_fb_init.html.erb (0.1ms)
  Rendered layouts/_signed_out_header.html.erb (0.7ms)
  Rendered layouts/_messages.html.erb (0.1ms)
Completed 200 OK in 10ms (Views: 7.5ms | ActiveRecord: 0.3ms)


Started GET "/about_us" for 87.198.119.247 at Thu May 30 11:02:29 +0100 2013
Processing by StaticPagesController#about_us as HTML
  Rendered static_pages/about_us.html.erb within layouts/application (0.0ms)
Completed 500 Internal Server Error in 4ms

ActionView::Template::Error (ie.css isn't precompiled):
    12:   <%= javascript_include_tag "application" %>
    13:   <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
    14:   <!--[if lt IE 9]>
    15:     <%= stylesheet_link_tag 'ie', :media => 'all' %>
    16:     <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
    17:   <![endif]-->
    18: </head>
  app/views/layouts/application.html.erb:15:in `_app_views_layouts_application_html_erb___1658874457_26880020'

所以我收到一个错误:ie.css没有预编译。

根据我的错误消息,我需要在第12行到第18行更改某些内容吗? 我做了:

rake assets:precompile

这似乎已成功完成:

/home/app/.rvm/rubies/ree-1.8.7-2012.02/bin/ruby /home/app/.rvm/gems/ree-1.8.7-2012.02@global/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets

我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

我假设,ie.css位于lib/assets/stylesheetsvendor/assets/stylesheets 要将其包含在预编译中,请添加config/environments/production.rb

config.assets.precompile += %w( ie.css )

你说,ie.css.scssapp/assets/stylesheets 我假设您的application.css包含:

 *= require_tree .

然后ie.css.scss被编译,缩小并包含在您的作品application.css中,并且不再有条件加载!

您的条件

14:   <!--[if lt IE 9]>
15:     <%= stylesheet_link_tag 'ie', :media => 'all' %>
16:     <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
17:   <![endif]-->

尝试再次加载它。
尝试删除stylesheet_link_tag并仅保留条件脚本。

如果您确实需要有条件加载css,请将其移至lib/assest/sytlesheet,以使其不包含在application.css中,并将其添加到assets.precompile,如上所述。

答案 1 :(得分:0)

感谢Martin M和其他人,我解决了我的问题。

基本上问题的核心就是这个,我得到的错误:

ActionView::Template::Error (ie.css isn't precompiled):

首先,我没有* = require ie在我的application.css.scss文件中,所以我把它放进去。我有8或9个scss文件,因为某些原因缺少ie参考(I从别人那里继承了这个项目。)

然后我在我的application.html.erb中完全删除了代码:

  <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
  <!--[if lt IE 9]>
    <%#= stylesheet_link_tag 'ie', :media => 'all' %>
    <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
  <![endif]-->

我保存了所有内容,将其推送到github上的master分支,然后从那里进入生产分支并部署它:

cap production deploy:migrations

它现在正在工作(之后的其他问题,但至少那部分正在运作!)