0

我正在尝试将我的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。我认为这是一个资产提交问题。除了使用引导程序稍微改变设计之外,我不记得做过任何不同的事情。

这是heroku的头

<link href="/assets/application-6dc3bf401e7f79f69a2a156bdeeb7a00.css" media="all" rel="stylesheet" type="text/css" />
  <script src="/assets/application-14e3dc5612ffc200db37e141e57c5af2.js" type="text/javascript"></script>

这是本地主机上的头

 <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>
4

1 回答 1

0

Rails 指南

在开发模式下,资产按照清单文件中指定的顺序作为单独的文件提供。

您实际上并没有问过问题,但要明确一点:您的资​​产没有被跳过。

您在 localhost 中看到的(列出的所有文件)都包含在生产中(在单个文件中)application.cssapplication.js

config/evironments/development.rb你有

config.assets.debug = true

这导致

<%= stylesheet_link_tag "application" %>
<%= javascript_include_tag "application" %>

进行扩展,为每个 javascript 和样式表创建单独的脚本和链接标签,这些标签将//=require通过 Sprockets 和 Rails 资产管道包含在您的行中。

在生产中(在 heroku 上),上述调试配置选项设置为 false,提供样式表和 javascript 的单个连接/压缩版本。

我敢肯定,如果您检查您的 Javascript 控制台以查看 localhost 中列出的任何 Javascript 文件中可用的变量/方法,<head>您会发现它们存在。生产中的 application.css 文件的内容也是如此。

推荐阅读: http: //guides.rubyonrails.org/asset_pipeline.html

于 2012-12-02T21:46:37.007 回答