想要尝试新的东西,使用真棒的twitter bootstrap和他们的Less CSS.我终于启动并运行了我的应用程序,但它在heroku的只读系统中崩溃了.我正试图找出我的选择,使用LESS,rails 3.2和heroku.这是我认为可以做的:
(1)一种选择是:预编译.
bundle exec rake assets:precompile
git commit public/assets -m "tedious precompilation task"
git push heroku
Run Code Online (Sandbox Code Playgroud)
我肯定会忘记预编译一次,只需将更改推送到heroku并让我的用户感到烦恼.不是我想要的.
(2)一个好的选择是less.js.它编译客户端.这是最常用的吗?
(3)更好的选择,IMO.预编译缓存.预编译例程和额外的客户端都不起作用.我问的是,是否有类似SASS的麻烦,少花钱?
UPDATE 26th jan-12:人们不使用麻烦的轨道3.1+,他们使用资产管道的sass-rails(默认rails 3.2).麻烦是sooo rails 3.0;)rake预编译步骤在heroku失败了./ UPDATE
我发现编译为静态机架缓存的想法绝对非常出色.我更喜欢它让每个客户端都需要在部署时一次性完成编译我的较少css.
更新25日1月:在heroku上更新自己.雪松堆栈支持资产管道,因此不再需要麻烦的宝石.正确?/ UPDATE
该怎么办?
在与heroku搏斗了大约一个星期并经过各种障碍以使其工作(新手的障碍,我绝对没有错误heroku)我终于让我的应用程序运行.我必须调整的其中一个步骤是预编译我的资产
bundle exec rake assets:precompile
Run Code Online (Sandbox Code Playgroud)
并对production.rb中的生产环境进行一些更改......
# Don't fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = true
Run Code Online (Sandbox Code Playgroud)
不幸的是,这打破了我本地网站上的一些js行为.但是在heroku上运行正常.我一直在处理这个问题的方法是将我的本地副本回滚到这些更改之前的某个点,但我想知道为什么它会破坏.还有一个资产:decomplile?基本上怎么会扭转极性或其他什么呢?我肯定会尝试与资产管道建立更密切的联系,但与此同时,任何帮助或见解都会受到极大的欢迎.
我是rails的初学者,我认为我对如何组织样式表没有明确的想法.目前,我的资产/样式表中有两个文件:
当我运行rake资产时:预编译 - 我意识到只有application.css被编译到我的public/assets文件夹中.home.css怎么样?
更多信息
我希望home.css仅在从我的家庭控制器收到响应时加载.我删除了*= require_tree.来自application.css(因为我猜测home.css将包含在所有其他页面中 - 我是对的吗?)
我试图找到解决方案的原因是因为heroku引发了以下错误:
ActionView::Template::Error (home.css isn't precompiled):
2012-04-29T10:48:20+00:00 app[web.1]: 5: <meta name="viewport" content="width=device-width">
2012-04-29T10:48:20+00:00 app[web.1]: 7: = stylesheet_link_tag "application"
2012-04-29T10:48:20+00:00 app[web.1]: 6: = javascript_include_tag "application"
2012-04-29T10:48:20+00:00 app[web.1]: 8: = stylesheet_link_tag params[:controller]
2012-04-29T10:48:20+00:00 app[web.1]: 9: = javascript_include_tag [:controller]
2012-04-29T10:48:20+00:00 app[web.1]: 10: = csrf_meta_tags
2012-04-29T10:48:20+00:00 app[web.1]: 11: %body
2012-04-29T10:48:20+00:00 app[web.1]:
2012-04-29T10:48:20+00:00 app[web.1]: app/views/layouts/application.haml:8:in `_app_views_layouts_application_haml__2082158123561350666_35885340'
2012-04-29T10:48:20+00:00 app[web.1]: cache: [GET /] miss
Run Code Online (Sandbox Code Playgroud)
任何想法是什么问题/错误?谢谢!
似乎Rails资产管道在我的开发环境中无法正常运行.我遇到了以下问题:
这些问题适用于CSS和JavaScript资产.下面是HTML输出的副本(我没有编辑默认的rails布局).请注意清单文件和所有资产(应该连接到单个文件中)的存在.
<!DOCTYPE html>
<html>
<head>
<title>Jackeyes</title>
<link href="/assets/application.css?body=1" media="all" rel="stylesheet" type="text/css" />
<link href="/assets/home.css?body=1" media="all" rel="stylesheet" type="text/css" />
<link href="/assets/universal.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/home.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery.waitforimages.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="0AZh7mNJS7R1jsHKyZ5eKBrAON10Jra2677A8Lg3wzw=" name="csrf-token" />
</head>
<body>
Run Code Online (Sandbox Code Playgroud)
我是Rails的新手,所以我不确定如何开始解决这个问题.任何帮助将不胜感激!
我在生产模式下运行Rails 3.2.8应用程序.在完成"rake assets:precompile"之后,我遇到了路由问题.
我的日志消息是:
ActionController::RoutingError (No route matches [GET] "/corp/assets/application-cf24b2a92e88a02835248f85a9f3c462.css"):
Run Code Online (Sandbox Code Playgroud)
此文件存在且位于当前位置.我的路线在"corp"范围内.
我的配置"config/application.rb"有选项"config.assets.enabled = true".
我的配置"config/environments/production.rb"有以下选项:
config.serve_static_assets = true
config.assets.compress = true
config.assets.compile = true
config.assets.digest = true
Run Code Online (Sandbox Code Playgroud)
应用程序在开发模式下工作正常 在那之前资产:预编译一切都很好.经过几个小时的帖子搜索,我无法找到解决问题的方法.请帮我解决这个问题!
我正在使用Stripe让用户订阅我的Rails 3.2应用程序.我有一个Subscription模型,在JS资产中我调用了该Stripe对象.但我只将Stripe javascript文件包含在Subscription流程的特殊布局文件中.它不包含在我的主应用程序布局中.
因此,如果我还没有在主应用程序布局模板上包含Stripe JS文件,那么我当然会收到错误,因为subscription.js.coffee正在引用Stripe.
除了我设置的特殊订阅模板之外,有没有办法不加载订阅资产?
我正在使用AWS Opsworks来托管我的Rails应用程序(Ruby 2.0/Rails 3.2).对于资产编译过程,我使用AssetSync在S3上自动上传编译的资产.我曾经将凭证存储为环境变量.
您是否知道如何使用Chef/Opsworks进行此操作?
谢谢.
jquery.flipcountdown.css文件是:
.xdsoft_flipcountdown.xdsoft_size_lg >.xdsoft_digit{
width:53px;
height:76px;
background-image:url(./img/digit-lg.png);
}
Run Code Online (Sandbox Code Playgroud)
目录结构是
+flipcountdown-master
+ img
- digit-lg.png
- jquery.flipcountdown.css
Run Code Online (Sandbox Code Playgroud)
问题是:在这种情况下如何使用资产管道.
1:将css放在assets/stylesheets下,并将img文件夹放在assets/images文件夹下?可以工作吗?
2:把css文件和img文件夹全部放到assets/stylesheets文件夹中,我很确定它可以工作,但是资产管道可以gzip吗?
我不擅长JS/CSS和我花了很多时间来阅读资产管道doc和YouTube上的视频,但我仍然不知道如何以正确的方式使用它.
thx提前
我有rails 4.2在开发上工作正常但在生产环境中我有以下警告:
DEPRECATION WARNING: The configuration option `config.serve_static_assets` has been renamed to `config.serve_static_files` to clarify its role (it merely enables serving everything in the `public` folder and is unrelated to the asset pipeline). The `serve_static_assets` alias will be removed in Rails 5.0. Please migrate your configuration files accordingly. (called from block in tsort_each at /home/xxx/.rbenv/versions/2.2.1/lib/ruby/2.2.0/tsort.rb:226)
但是我的app配置中没有config.serve_static_assets.它可能在某处配置.
请帮助如何摆脱这个.提前致谢.
我在/ views/layouts中有3个布局,用于我网站的3个不同部分.
我的资产看起来像:
/javascripts/layout1/*.js
/javascripts/layout2/*.js
/javascripts/layout3/*.js
/stylesheets/layout1/*.css
/stylesheets/layout2/*.css
/stylesheets/layout3/*.css
Run Code Online (Sandbox Code Playgroud)
现在在一个特定的布局中,比如layout1,我怎么才能只为这个布局包含样式/ javascript文件?