我正在关注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>
答案 0 :(得分:2)
在制作中,所有css都是压缩的,Fingerprinting
:
<link href="/assets/application-7270767b2a9e9fff880aa5de378ca791.css" media="all" rel="stylesheet" type="text/css" />
指纹识别是一种使文件名依赖于文件内容的技术。文件内容更改时,文件名也会更改。对于静态或不经常更改的内容,这提供了一种简单的方法来判断文件的两个版本是否相同,即使在不同的服务器或部署日期也是如此。
默认情况下为生产启用指纹识别,为所有其他环境启用指纹识别
答案 1 :(得分:1)
我查找了另一个帖子,并在production.rb(设置为true而不是默认值false)下面的条目为我修复了这个问题。
config.serve_static_assets = true