1

前言:我从railstutorial.org开始了Rails教程。我已经尝试解决这个问题(这是我的引导程序下拉菜单没有打开),但在我的搜索中,我相信我发现了一个我似乎无法解决的更大问题。Ruby on Rails - 如何防止我的资产被加载两次?

问题:我的rails应用程序似乎要加载每个.js和.css文件两次。在:

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Ruby on Rails Tutorial Sample App</title> 
    <link href="/assets/application.css?body=1" media="all" rel="stylesheet" type="text/css" /> 
<link href="/assets/custom.css?body=1" media="all" rel="stylesheet" type="text/css" /> 
<link href="/assets/sessions.css?body=1" media="all" rel="stylesheet" type="text/css" /> 
<link href="/assets/static_pages.css?body=1" media="all" rel="stylesheet" type="text/css" /> 
<link href="/assets/users.css?body=1" media="all" rel="stylesheet" type="text/css" /> 
    <script src="/assets/jquery.js?body=1" type="text/javascript"></script> 
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script> 
<script src="/assets/bootstrap-transition.js?body=1" type="text/javascript"></script> 
<script src="/assets/bootstrap-affix.js?body=1" type="text/javascript"></script> 
<script src="/assets/bootstrap-alert.js?body=1" type="text/javascript"></script> 
<script src="/assets/bootstrap-button.js?body=1" type="text/javascript"></script> 
<script src="/assets/bootstrap-carousel.js?body=1" type="text/javascript"></script> 
<script src="/assets/bootstrap-collapse.js?body=1" type="text/javascript"></script> 
<script src="/assets/bootstrap-dropdown.js?body=1" type="text/javascript"></script> 
<script src="/assets/bootstrap-modal.js?body=1" type="text/javascript"></script> 
<script src="/assets/bootstrap-scrollspy.js?body=1" type="text/javascript"></script> 
<script src="/assets/bootstrap-tab.js?body=1" type="text/javascript"></script> 
<script src="/assets/bootstrap-tooltip.js?body=1" type="text/javascript"></script> 
<script src="/assets/bootstrap-popover.js?body=1" type="text/javascript"></script> 
<script src="/assets/bootstrap-typeahead.js?body=1" type="text/javascript"></script> 
<script src="/assets/bootstrap.js?body=1" type="text/javascript"></script> 
<script src="/assets/sessions.js?body=1" type="text/javascript"></script> 
<script src="/assets/static_pages.js?body=1" type="text/javascript"></script> 
<script src="/assets/users.js?body=1" type="text/javascript"></script> 
<script src="/assets/application.js?body=1" type="text/javascript"></script> 
    <meta content="authenticity_token" name="csrf-param" /> 
<meta content="JJWsUII950M/WG8p2CUTI1nuCgDCPLmJAC5yCHl1uec=" name="csrf-token" /> 
    <!--[if lt IE 9]> 
    <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> 
    <![endif]--> 
    </head> 
<!DOCTYPE html> 
<html> 
    <head> 
    <title>Ruby on Rails Tutorial Sample App</title> 
    <link href="/assets/application.css?body=1" media="all" rel="stylesheet" type="text/css" /> 
<link href="/assets/custom.css?body=1" media="all" rel="stylesheet" type="text/css" /> 
<link href="/assets/sessions.css?body=1" media="all" rel="stylesheet" type="text/css" /> 
<link href="/assets/static_pages.css?body=1" media="all" rel="stylesheet" type="text/css" /> 
<link href="/assets/users.css?body=1" media="all" rel="stylesheet" type="text/css" /> 
    <script src="/assets/jquery.js?body=1" type="text/javascript"></script> 
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script> 
<script src="/assets/bootstrap-transition.js?body=1" type="text/javascript"></script> 
<script src="/assets/bootstrap-affix.js?body=1" type="text/javascript"></script> 
<script src="/assets/bootstrap-alert.js?body=1" type="text/javascript"></script> 
<script src="/assets/bootstrap-button.js?body=1" type="text/javascript"></script> 
<script src="/assets/bootstrap-carousel.js?body=1" type="text/javascript"></script> 
<script src="/assets/bootstrap-collapse.js?body=1" type="text/javascript"></script> 
<script src="/assets/bootstrap-dropdown.js?body=1" type="text/javascript"></script> 
<script src="/assets/bootstrap-modal.js?body=1" type="text/javascript"></script> 
<script src="/assets/bootstrap-scrollspy.js?body=1" type="text/javascript"></script> 
<script src="/assets/bootstrap-tab.js?body=1" type="text/javascript"></script> 
<script src="/assets/bootstrap-tooltip.js?body=1" type="text/javascript"></script> 
<script src="/assets/bootstrap-popover.js?body=1" type="text/javascript"></script> 
<script src="/assets/bootstrap-typeahead.js?body=1" type="text/javascript"></script> 
<script src="/assets/bootstrap.js?body=1" type="text/javascript"></script> 
<script src="/assets/sessions.js?body=1" type="text/javascript"></script> 
<script src="/assets/static_pages.js?body=1" type="text/javascript"></script> 
<script src="/assets/users.js?body=1" type="text/javascript"></script> 
<script src="/assets/application.js?body=1" type="text/javascript"></script> 
    <meta content="authenticity_token" name="csrf-param" /> 
<meta content="JJWsUII950M/WG8p2CUTI1nuCgDCPLmJAC5yCHl1uec=" name="csrf-token" /> 
    <!--[if lt IE 9]> 
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> 
<![endif]-->  
    </head> 

所以,我已经做了耙资产:干净。我将config.serve_static_assets = false行添加到了我的development.rb中。

这些都没有工作。我的问题是在地方一级和heroku。

这是我的git和我的heroku链接 - 你可以看到我一直在试图解决这个问题,但我真的没有运气。

一些更多的文件来看看(也许ITLL帮忙吗?)

application.css

*= require_self 
*= require_tree . 
*/ 

custom.css.scss

@import "bootstrap"; 

/* mixins, variables, etc. */ 

$grayMediumLight: #eaeaea; 

@mixin box_sizing { 
    -moz-box-sizing: border-box; 
    -webkit-box-sizing: border-box; 
    box-sizing: border-box; 
} 

/* universal */ 

html { 
    overflow-y: scroll; 
} 

body { 
    padding-top: 60px; 
} 

section { 
    overflow: auto; 
} 

textarea { 
    resize: vertical; 
} 

.center { 
    text-align: center; 
} 

.center h1 { 
    margin-bottom: 10px; 
} 

/* typography */ 

h1, h2, h3, h4, h5, h6 { 
    line-height: 1; 
} 

h1 { 
    font-size: 3em; 
    letter-spacing: -2px; 
    margin-bottom: 30px; 
    text-align: center; 
} 

h2 { 
    font-size: 1.7em; 
    letter-spacing: -1px; 
    margin-bottom: 30px; 
    text-align: center; 
    font-weight: normal; 
    color: $grayLight; 
} 

p { 
    font-size: 1.1em; 
    line-height: 1.7em; 
} 

/* header */ 

#logo { 
    float: left; 
    margin-right: 10px; 
    font-size: 1.7em; 
    color: #fff; 
    text-transform: uppercase; 
    letter-spacing: -1px; 
    padding-top: 9px; 
    font-weight: bold; 
    line-height: 1; 
    &:hover { 
    color: #fff; 
    text-decoration: none; 
    } 
} 

/* footer */ 

footer { 
    margin-top: 45px; 
    padding-top: 5px; 
    border-top: 1px solid #eaeaea; 
    color: $grayLight; 
    a { 
    color: #555; 
    &:hover { 
    color: #222; 
    } 
    } 
small { 
    float: left; 
} 
ul { 
    float: right; 
    list-style: none; 
    li { 
    float: left; 
    margin-left: 10px; 
    } 
} 
} 

/* miscellaneous */ 

.debug_dump { 
    clear: both; 
    float: left; 
    width: 100%; 
    margin-top: 45px; 
    @include box_sizing; 
} 

/* sidebar */ 

aside { 
    section { 
    padding: 10px 0; 
    border-top: 1px solid $grayLighter; 
    &:first-child { 
     border: 0; 
     padding-top: 0; 
    } 
    span { 
     display: block; 
     margin-bottom: 3px; 
     line-height: 1; 
    } 
    h1 { 
     font-size: 1.4em; 
     text-align: left; 
     letter-spacing: -1px; 
     margin-bottom: 3px; 
     margin-top: 0px; 
    } 
    } 
} 

.gravatar { 
    float: left; 
    margin-right: 10px; 
} 

/* forms */ 

input, textarea, select, .uneditable-input { 
    border: 1px solid #bbb; 
    width: 100%; 
    padding: 10px; 
    margin-bottom: 15px; 
    @include box_sizing; 
} 

input { 
    height: auto !important; 
} 

#error_explanation { 
    color: #f00; 
    ul { 
    list-style: none; 
    margin: 0 0 18px 0; 
    } 
} 

.field_with_errors { 
    @extend .control-group; 
    @extend .error; 
} 

的application.js

//= require jquery 
//= require jquery_ujs 
//= require bootstrap 
//= require_tree . 

Gemfile

source 'https://rubygems.org' 

gem 'rails', '3.2.13' 
gem 'bootstrap-sass' 
gem 'bcrypt-ruby', '3.0.1' 

group :development, :test do 
    gem 'sqlite3', '1.3.5' 
    gem 'rspec-rails', '2.11.0' 
    gem 'guard-rspec', '1.2.1' 

end 

group :development do 
    gem 'annotate', '2.5.0' 
end 

# Gems used only for assets and not required 
# in production environments by default. 
group :assets do 
    gem 'sass-rails', '3.2.5' 
    gem 'coffee-rails', '3.2.2' 
    gem 'uglifier', '1.2.3' 
end 

gem 'jquery-rails', '2.0.2' 

group :test do 
    gem 'capybara', '1.1.2' 
    # System-dependent gems 
end 

group :production do 
    gem 'pg', '0.12.2' 
end 

回答

2

您已经在app/views/layouts/application.html.erb下面的代码中加入额外块,因此重复的原因:

<!DOCTYPE html> 
<html> 
    <head> 
    <title><%= full_title(yield(:title)) %></title> 
    <%= stylesheet_link_tag "application", media: "all" %> 
    <%= javascript_include_tag "application" %> 
    <%= csrf_meta_tags %> 
    <!--[if lt IE 9]> 
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> 
<![endif]--> 
</head> 

删除,你应该是好去。

+0

我吓坏了爱你的男人! – Kwestion