啊,我从这些资产中得到了令人头疼的事:预编译的事情。当我第一次将app推送到heroku时,我在本地预先推出了它们。这一切都很好,但随后它不会对我在开发之后制作的css文件进行任何更改,因为它服务于预编译资产。所以现在,对于视觉事物,我不得不做耙资产:干净。我做了我想在本地app的更改,没有问题。然后,我再次预编译资产,并将更改推送到heroku,但现在它似乎甚至看不到我的资产。页面只是白色的东西,没有任何样式。
请帮忙!
答案 0 :(得分:0)
你在使用heroku系统的2个部分时遇到了问题:
资产指纹识别基本上会在资产文件的末尾添加一个MD5哈希,以保持它们的独特性和优势。取决于他们在文件中的任何关系。这很重要,因为每次编译资产时,它们都会生成这些新文件名,这会导致标准CSS陷入困境
您需要对CSS中的所有资产引用执行此操作:
将CSS文件更改为.css.scss
与静态CSS不同,SCSS是动态编译的,可以解析ruby代码。这意味着您可以像这样引用您的资产:
background-url: asset_url('/nav_bar/nagivgation_bg.png');
为您的CSS文件执行此操作,引用应该没问题
Heroku需要您在Rails中运行静态资产。这很简单:
#/config/environments/production.rb
config.serve_static_assets = true
<强>更新强>
以下是一些实时代码,用于演示.scss文件中包含动态帮助程序的位置:
.confirmation .action_bar a.confirm {
color: #fff;
background: asset_url('modals/confirm_button/bg.png') top repeat-x;
position: relative;
margin: 0 0 0 7px;
}