我正在尝试将我的rails应用程序上传到我的heroku帐户,因为我之前做了几次(成功)
heroku login (email and pass)
rake assets:precompile
bundle install --without production
git add --all
git commit -am "commit_desc2"
git push heroku master
我得到了我的应用程序,没有所有的CSS和js包含在标题中。我认为这是一个资产提交问题。我不记得做任何不同的事情,除了使用bootstrap改变设计。
这是heroku的头
<link href="/assets/application-6dc3bf401e7f79f69a2a156bdeeb7a00.css" media="all" rel="stylesheet" type="text/css" />
<script src="/assets/application-14e3dc5612ffc200db37e141e57c5af2.js" type="text/javascript"></script>
这是localhost上的头
<link href="/assets/application.css?body=1" media="all" rel="stylesheet" type="text/css" />
<link href="/assets/bootstrapStyle.css?body=1" media="all" rel="stylesheet" type="text/css" />
<link href="/assets/bootstrap_and_overrides.css?body=1" media="all" rel="stylesheet" type="text/css" />
<link href="/assets/ratings.css?body=1" media="all" rel="stylesheet" type="text/css" />
<link href="/assets/scaffolds.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/twitter/bootstrap/bootstrap-transition.js?body=1" type="text/javascript"></script>
<script src="/assets/twitter/bootstrap/bootstrap-alert.js?body=1" type="text/javascript"></script>
<script src="/assets/twitter/bootstrap/bootstrap-modal.js?body=1" type="text/javascript"></script>
<script src="/assets/twitter/bootstrap/bootstrap-dropdown.js?body=1" type="text/javascript"></script>
<script src="/assets/twitter/bootstrap/bootstrap-scrollspy.js?body=1" type="text/javascript"></script>
<script src="/assets/twitter/bootstrap/bootstrap-tab.js?body=1" type="text/javascript"></script>
<script src="/assets/twitter/bootstrap/bootstrap-tooltip.js?body=1" type="text/javascript"></script>
<script src="/assets/twitter/bootstrap/bootstrap-popover.js?body=1" type="text/javascript"></script>
<script src="/assets/twitter/bootstrap/bootstrap-button.js?body=1" type="text/javascript"></script>
<script src="/assets/twitter/bootstrap/bootstrap-collapse.js?body=1" type="text/javascript"></script>
<script src="/assets/twitter/bootstrap/bootstrap-carousel.js?body=1" type="text/javascript"></script>
<script src="/assets/twitter/bootstrap/bootstrap-typeahead.js?body=1" type="text/javascript"></script>
<script src="/assets/twitter/bootstrap/bootstrap-affix.js?body=1" type="text/javascript"></script>
<script src="/assets/twitter/bootstrap.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap.js?body=1" type="text/javascript"></script>
<script src="/assets/index.js?body=1" type="text/javascript"></script>
<script src="/assets/ratings.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>
答案 0 :(得分:0)
来自 Rails Guide :
在开发模式下,资产按照清单文件中指定的顺序作为单独的文件提供。
您实际上并未提出问题,但要明确:您的资产不会被跳过。
您在localhost中看到的内容(列出的所有文件)都包含在生产中(在单个application.css
和application.js
文件中。
在config/evironments/development.rb
你有
config.assets.debug = true
这会导致
<%= stylesheet_link_tag "application" %>
<%= javascript_include_tag "application" %>
要扩展,为每个javascript和样式表创建单独的脚本和链接标记,这些标记将通过Sprockets和Rails资产管道通过//=require
行包含在内。
在生产中(在heroku上),上面的debug config选项设置为false,提供样式表和javascripts的单个连接/压缩版本。
我确定您是否检查了Javascript控制台中是否存在您在localhost <head>
中列出的任何Javascript文件中可用的变量/方法,您会发现它们存在。生产中的application.css文件的内容也是如此。