1

我正在关注 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> 
4

2 回答 2

2

在生产中,你所有的 css 都被压缩了,它Fingerprinting

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

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

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

阅读更多关于指纹识别的信息

于 2013-07-18T17:09:18.550 回答
1

我查找了另一个线程,production.rb 中的以下条目(设置为 true 而不是默认 false)为我解决了这个问题。

config.serve_static_assets = true

(另见CSS 未在 Heroku 中加载

于 2014-12-30T01:50:08.580 回答