Michael Hartl的Rails教程在heroku中没有样式表

时间:2013-07-18 17:03:30

标签: ruby-on-rails

我正在关注Michael Hartl的教程。在第7章中,我能够部署到Heroku但是。 Heroku版本运行正常,但似乎缺少一些样式表信息。

让我重新解释一下我的问题:在Heroku上查看时,网站格式不正确,就像css被禁用一样。

in Heroku:
==========
<!DOCTYPE html> 
<html> 
  <head> 
    <title> Ruby on Rails Tutorial Sample App</title> 
    <link href="/assets/application-7270767b2a9e9fff880aa5de378ca791.css" media="all" rel="stylesheet" type="text/css" /> 
    <script src="/assets/application-3428e82709d7645135002c8fadfafdc6.js" type="text/javascript"></script> 
    <meta content="authenticity_token" name="csrf-param" />
<meta content="L4TMpZr2j2TAf1jrSThKE48aaP1P+NuVfwSXEVLheEE=" name="csrf-token" /> 
    <!--[if lt IE 9]> 
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> 
<![endif]--> 
  </head> 

On the local server:
====================
<!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/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/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="pF9wfBsOh4j+WMjnd/sbfq+sIPxNBhiNI6lYXUycMjo=" name="csrf-token" /> 
    <!--[if lt IE 9]> 
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> 
<![endif]--> 
  </head> 

2 个答案:

答案 0 :(得分:2)

在制作中,所有css都是压缩的,Fingerprinting

    <link href="/assets/application-7270767b2a9e9fff880aa5de378ca791.css" media="all" rel="stylesheet" type="text/css" /> 
  

指纹识别是一种使文件名依赖于文件内容的技术。文件内容更改时,文件名也会更改。对于静态或不经常更改的内容,这提供了一种简单的方法来判断文件的两个版本是否相同,即使在不同的服务器或部署日期也是如此。

     

默认情况下为生产启用指纹识别,为所有其他环境启用指纹识别

Read more about Fingerpriting

答案 1 :(得分:1)

我查找了另一个帖子,并在production.rb(设置为true而不是默认值false)下面的条目为我修复了这个问题。

config.serve_static_assets = true

(另见CSS not loading in Heroku