我正在尝试修改我的链接:
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
我错过了什么吗?
答案 0 :(得分:1)
我假设,ie.css位于lib/assets/stylesheets
或vendor/assets/stylesheets
要将其包含在预编译中,请添加config/environments/production.rb
config.assets.precompile += %w( ie.css )
你说,ie.css.scss
在app/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
它现在正在工作(之后的其他问题,但至少那部分正在运作!)