Tag: 资产管道

Rails4:image_url不在scss中生成摘要

我无法理解为什么我的css文件没有使用辅助方法image_url将摘要附加到我的资产 我的资产是正确预先推荐的,文件确实包含摘要。 我也可以手动访问它们(使用消化的URL)。 最奇怪的是,它一开始就有效。 这是我的配置: config.assets.js_compressor = :uglifier config.assets.compile = false config.assets.digest = true config.assets.version = ‘1.0’ config.serve_static_assets = false #also tried true 这是我的application.css:* = require_tree。 这是common.scss文件,用于包含图像: body{ background: image_url(‘bg.jpg’); font-family: ‘Lato’, sans-serif; overflow-x: hidden; } 图像以及样式表位于资产/图像和资产/样式表中的子文件夹中。 在这里我的gem: gem ‘rails’, ‘4.0.0’ gem ‘sass-rails’, ‘~> 4.0.0’ 我正在使用capistrano进行部署,但我不认为这是一个与capistrano相关的问题,资产编制得很好。 编辑到目前为止我(尝试失败)的尝试: image-url(‘image.jpg’); -> http://sofzh.miximages.com/ruby-on-rails/image.jpg image_url(‘image.jpg’); -> same as above […]

Rails图像消失,出现错误:无法加载资源:net :: ERR_CONTENT_LENGTH_MISMATCH

基本上我的问题是页面加载正常并且看起来正常。 大约30秒后它突然消失了。 这是错误之前的服务器日志(加载页面时): Started GET “/” for 127.0.0.1 at 2014-03-11 23:53:30 -0400 Processing by PagesController#home as HTML Rendered pages/home.html.erb within layouts/application (0.7ms) Rendered layouts/_head.erb (3.3ms) Rendered layouts/_header.erb (0.9ms) Rendered layouts/_footer.erb (0.2ms) Completed 200 OK in 11ms (Views: 10.5ms) Started GET “/assets/favicon.ico” for 127.0.0.1 at 2014-03-11 23:53:30 -0400 Started GET “/assets/application.css?body=1” for 127.0.0.1 at 2014-03-11 23:53:30 […]

使用Twitter Bootstrap的Rails:仍在提供旧资产

在这里坚果。 我正在开发一个rails应用程序,我正在使用twitter-bootstrap-rails gem以便在我的应用程序中包含Twitter Bootstrap样式。 这个gem在app / assets / stylesheets中生成一个名为’bootstrap_and_overrides.css.less’的文件,我一直用它来修改一些引导变量并包含我自己的CSS覆盖。 一切都很好,直到今天。 出于某种原因,我今天对此文件所做的更改将保存到文件中,但Rails仍在提供该文件的旧版本! 我搜索过,发现文件中没有任何预编译版本(公共/资产中没有)…只有我修改过的资产/样式表中的那个。 对于应用程序中的目录,一切看起来都很好,但是当我启动rails服务器,加载页面,并使用元素检查器查看样式表时,它使用旧版本的’bootstrap_and_overrides.css.less’我已删除的规则。 我已经在我的浏览器中关闭了缓存,并在4种不同的浏览器中尝试了它,所以我很确定这不是浏览器缓存的结果。 rails资产管道似乎只是服务于一个不存在的文件版本! 有没有人知道为什么会这样?

Ruby on Rails 4 javascript未执行

我在app/assets/javascripts有一个自定义的js文件。 这是js文件: //app/assets/javascripts/contacts.js //$(document).ready(function() { //I’ve already tried with this method $(window).load(function() { alert(“foo bar”) }); 我需要application.js文件中的文件contacts.js文件。 如果我检查html页面,我看到正确加载了js文件,但是没有显示该消息。 如果我重新加载页面(通过按f5),则正确显示该消息。 当页面加载时,javascript被加载(我可以在浏览器的源代码html代码中看到它)但是没有执行。 你能帮助我吗? 解决方案: Rails 4:如何将$(document).ready()与turbo-links一起使用

使用asset_path为单个资产禁用资产指纹识别

我想在我的视图中调用asset_path助手时使用普通的资产名称,例如asset_path 在生产中,它使用缓存破坏名称,例如app-f73cf13e6f100eda6681381e7d3ae9eb.js 。 有没有办法使用asset_path获取正常名称?

Rails资产最佳实践

我是Rails的新手,无法找出组织资产的最佳方法。 这个问题的目的是收集我的想法,征求意见,并随着时间的推移进化文档 – 也许有一天它可能是一个Rails指南。 (Rails Wiki似乎已经死了。)这将作为新手概念化的辅助,而不是参考,因此它将仅限于最常见的场景。 资产管道 – 概述 有关管道的目的,好处和内部工作方式的详细信息,请从本指南开始: http : //guides.rubyonrails.org/asset_pipeline.html我将仅在此总结与我的目的相关的位。 管道必要的原因是: 编译:将高级语言(ERb,Haml,Sass,LESS,CoffeeScript …)编译成纯CSS / JS。 该管道的额外好处是: 连接:将多个文件合并为一个以提高客户端性能。 缩小:删除空格和其他巧妙的优化以减小文件大小。 指纹识别:在文件名中添加了文件内容的MD5哈希值,以强制缓存在更改时再次获取文件。 资产管道 – 默认文件系统布局 app|lib|vender/assets/ – 用于将由管道处理的文件。 app/assets/ – 专门针对您为应用程序创建的文件。 lib/assets/ – 专门用于为跨多个应用程序共享而创建的文件。 vendor/assets/ – 专门用于其他人创建的文件,例如jQuery和Twitter Bootstrap(虽然它们经常由gem提供,而不是直接导入/ vender)。 public/ – 此处的文件保留原样,可直接从您的Web应用程序的根路径(’/’)获取。 资产管道 – 默认文件和行为 应用程序/资产/ JavaScript的/ application.js中 //= require jquery //= require jquery_ujs //= […]

资产管道:不包括admin.css文件

我将Rails 3.0应用程序升级到Rails 3.1,其中涉及到这个 /* *= require_self *= require_tree . */ 在application.css文件中。 但是,有一个admin.css文件现在覆盖了主应用程序css文件。 有没有办法排除admin.css文件被包含? 在网站的管理部分,我手动包含admin.css文件,但我需要一种方法将其从用户界面中排除。

如何在Rails 3.1资产管道中动态需要资产?

我有一个基于插件的系统,我用它在Rails中进行应用程序开发。 每个插件都实现了一个带有MVC组件等的引擎。主应用程序只是一个空的线束,它将所​​有工作委托给安装的插件。 我目前正在从Rails 2.3.5升级到Rails 3.1,并试图让资产管道与我的框架一起工作。 我遇到的问题是尝试以编程方式将我的插件资源放入例如application.js清单中。 我可以像这样手动添加它们: //= require 一切都按预期工作。 但是,由于我的框架中有许多插件,并且每个安装都有不同的组合,我希望根据安装的插件进行此清单更改。 我试过这个解决方案: 但我发现资产管道编译的require / directive阶段发生在ERB扩展之前,因此生成的注释最终只是注释。 是否有另一种机制可以包含可能有效的编译路径? 在指令处理开始之前预先处理清单文件的任何方法? 如果我想不出更好的东西,我可能必须编写一个rake / deployment任务,在部署时生成一个plugin.js清单文件,但如果可能的话,我会喜欢更清晰和优雅的东西。 谢谢! 编辑 :发现解决方案,一旦stackoverflow让我发布完整的解决方案。 同时查看以下评论​​……

将sass-rails gem升级到5.0会给出弃用警告

我们升级到sass-rails版本5.0.0并获得此弃用警告: DEPRECATION WARNING: Extra .css in SCSS file is unnecessary. Rename /Users/foo/Projects/foo/app/assets/stylesheets/foo.css.scss to /Users/foo/Projects/foo/app/assets/stylesheets/foo.scss. (called from _app_views_layouts_application_html_erb__1560597815210891605_70190441246060 at /Users/foo/Projects/foo/app/views/layouts/application.html.erb:13) 有谁知道这是怎么回事? gem是否真的希望我重命名我的所有样式表资源: app/assets/stylesheets/foo.css.scss 至: app/assets/stylesheets/foo.scss ? 似乎与我一起反对多年的Rails惯例。 也许有办法抑制弃用警告?

Rails 4 assets.precompile

这是一个常见的问题,但没有一个解决方案解决了我的问题,所以在这里: 我将ace.js添加到我的rails4应用程序中,所以我做的是 – Added vendor/assets/ace/ace.js – Created vendor/assets/ace/index.js , with content //= require ace – Added the following to my production.rb config.assets.precompile += %w( index.js ) config.assets.paths << Rails.root.join("vendor", "assets", "ace") 所以在我的布局文件中我有: 它在dev上运行得很好,但是当我运行时: RAILS_ENV=production bundle exec rake assets:precompile 它不会创建ace文件的摘要版本。 我错过了什么吗?