Tag: 资产管道

部署到Heroku后未加载更新的CSS样式表?

这对我来说已经有一段时间了,但是我仍然无法弄清楚Rails 4中的资产管道是如何工作的。我终于学会了如何预编译资产,但是在部署之后,我的CSS样式表再次没有了得到更新。 我通过访问开发人员工具并查看源来确认了这一点。 它看起来与我的CSS文件不同。 我的猜测是问题在于我的production.rb文件。 Production.rb Games::Application.configure do config.cache_classes = true config.eager_load = true config.consider_all_requests_local = false config.action_controller.perform_caching = true config.serve_static_assets = true config.assets.js_compressor = :uglifier config.assets.compile = true config.assets.digest = true config.assets.version = ‘1.0’ config.log_level = :info config.i18n.fallbacks = true config.active_support.deprecation = :notify config.log_formatter = ::Logger::Formatter.new end application.rb中 require File.expand_path(‘../boot’, __FILE__) require ‘rails/all’ Bundler.require(*Rails.groups) […]

Sass :: SyntaxError:导入未找到或不可读的文件:生产中的指南针

我正在使用SASS + Compass和控制器特定的样式表,所以在我的application.html.erb中我设置: “all” %> 所以我有一个home.css(清单),我把: /* *= require_self *= require homepage */ 我的主页.css.scss: @import “sass/_all”; @import “bootstrap”; @import “compass”; … 即使在生产中我的主页也没关系,但是当我尝试vsit其他页面(比如/ tags)时,我收到此错误: Sass::SyntaxError: File to import not found or unreadable: compass. Load path: /home/user/apps/www.mysite.com/releases/20140416112240 (in /home/user/apps/www.mysite.com/releases/20140416112240/app/assets/stylesheets/tags.css.scss) Sass::SyntaxError: File to import not found or unreadable: compass. Load path: /home/user/apps/www.mysite.com/releases/20140416112240 (in /home/user/apps/www.mysite.com/releases/20140416112240/app/assets/stylesheets/tags.css.scss) 我不知道我是否必须设置@import “compass”; 在每个控制器特定的.scss文件,我不知道如何解决此错误。 我的application.rb: […]

究竟“config.assets.debug”设置到底是什么?

我已经开始开发简单的rails应用程序了。 经过几个小时的工作后,我注意到删除的css仍以某种方式应用于网页。 为了解决这个问题,我多次执行了以下操作: 停止/启动服务器 使用rails服务器 使用扭矩箱服务器 删除浏览器缓存 但没有变化。 这很奇怪 – 新的css定义已经应用,但我删除的那些仍然存在。 所以,我放弃了,决定创建新项目。 我已经设置了新项目(它的脚手架与第一个脚手架相同),当我打开其中一个视图时,旧项目的样式也被应用了。 我决定再次查看http://guides.rubyonrails.org/asset_pipeline.html并找出该设置 #Expands the lines which load the assets config.assets.debug = false 解决了这个问题。 但这个选项究竟做了什么呢? 当这是真的时,为什么旧​​的项目css被应用?

在开发中禁用Sprockets资产缓存

我正在使用Rails 3.2.13和Rails Asset Pipeline。 我想使用资产管道,所以我可以使用SASS和CoffeeScript和ERB作为我的资产,并让Pipeline自动编译它们,所以我不能在开发中关闭管道。 我不是在开发中预编译资产,甚至没有public/assets/目录。 但是,当我对包含的文件进行更改时,例如对_partial.html.erb文件中包含(呈现)的_partial.html.erb文件进行更改,而不更改包含本身的文件(在此示例layout.html.erb ),Sprockets没有检测到更改并使缓存无效,所以我不断获得相同的陈旧文件。 当我在积极开发中执行此操作时,我想禁用任何资产缓存,以便我可以对每个请求进行更改,但我无法弄清楚如何执行此操作。 我在development.rb设置了以下所有内容development.rb : config.action_controller.perform_caching = false config.action_dispatch.rack_cache = nil config.middleware.delete Rack::Cache config.assets.debug = true config.assets.compress = false config.cache_classes = false 尽管如此,即使这样,文件也会显示在tmp/cache/assets/和tmp/cache/sass/并且在将来的请求中无法进行更改。 现在我每次想要看到更改时都必须手动删除这些目录。 不幸的是,资产管道RoR指南的How Caching Works部分的全部内容是: Sprockets使用默认的Rails缓存存储来缓存开发和生产中的资产。 TODO:添加有关更改默认商店的更多信息。 那么,我如何让Sprockets按需编译资产但不缓存结果呢?