标签: asset-pipeline

如何基于rails 3.1中的通配符子域向Sprockets添加资产搜索路径?

滑轨资产管道指南将指导您使用config.assets.pathsconfig/application.rb,但我没有在这一点上访问请求的子域.

我希望能够根据请求的子域前置一个额外的路径(仅针对当前请求).

我的申请具体细节

这是一个基本的CMS应用程序.根domain.com主机使用标准控制器/视图呈现和默认资产路径处理管理部分.

请求以此subdomain.domain.com为基础呈现网站subdomain.它只调用prepend_view_patha before_filterRails.root.join('vendor/sites/[subdomain]/templates')为当前请求添加 .

我希望能够Rails.root.join('vendor/sites/[subdomain]/assets')在请求主机时添加到Sprockets搜索路径[subdomain].domain.com.

编辑

我最后只是在mixin中删除了Sprockets::Environment覆盖调用方法:

module SiteAssetsResolver
  def call(env)
    begin
      # prepend path based on subdomain (from env)
      super # Sprockets::Server#call
    ensure
      # remove path based on subdomain
    end
  end
end

MyApp::Application.assets.extend(SiteAssetsResolver)
Run Code Online (Sandbox Code Playgroud)

assets ruby-on-rails ruby-on-rails-3.1 sprockets asset-pipeline

13
推荐指数
1
解决办法
3114
查看次数

资产管道没有将javascripts压缩为application.js

我有两个问题.

  1. 我是否错误地假设我的所有javascripts都应该在rails 3.1中被压缩成application.js,即使在开发模式下也是如此?

  2. 如果没有,那么为什么我的标签包含我的所有30个javascripts并且需要加载?

我的application.js文件如下所示:

//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require_tree .
Run Code Online (Sandbox Code Playgroud)

在浏览器中,它呈现为:

// This is a manifest file that'll be compiled into including all the files listed below.
// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
// be included in the compiled file accessible from http://example.com/assets/application.js
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails-3.1 asset-pipeline

13
推荐指数
1
解决办法
3260
查看次数

Heroku rails 3.1 app - 在本地编译资产与在slug编译期间编译资产

我正在Heroku Cedar堆栈上运行rails 3.1 app,它支持资产管道.Heroku 列出了3种编译资产的方法

  1. 在本地编译资产.
  2. 在slug编译期间编译资产.
  3. 在运行时编译资产.

显然#3对性能有害,而Heroku文档也建议不要这样做.但我不确定#1和#2之间哪个更好.

#1要求您运行rake assets:precompilepublic/assets在git中包含您的文件夹.你的slug会更大,但我认为部署网站的停机时间会更短.但更大的段塞大小意味着应用程序启动速度较慢,所以也许这是一个洗牌.

由于在Heroku端进行预编译,#2将使部署更新需要更长的时间.但是,你会有一个较小的slu and,而且管理/记忆的次数较少.

我的问题是 - 哪种选择(#1或#2)最适合生产,为什么?

到目前为止它看起来像选项#2但我想确保我不会忽视某些东西.

ruby ruby-on-rails heroku ruby-on-rails-3 asset-pipeline

13
推荐指数
1
解决办法
7609
查看次数

Rails 3.1资产管道 - 为什么我的图像不能预编译用于生产?

运行时:

rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets
Run Code Online (Sandbox Code Playgroud)

一切都是预编译但不是我的 /app/assets/images/*

我甚至尝试将此添加到我的 environment/production.rb

config.assets.paths << "#{Rails.root}/app/assets/images"
Run Code Online (Sandbox Code Playgroud)

怎么了?谢谢!

ruby-on-rails ruby-on-rails-3.1 asset-pipeline

13
推荐指数
1
解决办法
1万
查看次数

仅在资产存在时包括资产

在我们当前的rails应用程序中,我们遵循某些模式来包含脚本和样式表等资产.

例如,一个这样的模式是(布局内的代码):

= stylesheet_link_tag controller.controller_name
Run Code Online (Sandbox Code Playgroud)

这里的问题是并非所有控制器都有相关的样式表.检查资产是否存在的最佳方法是什么?具体来说,我知道由于缓存破坏资产名称,这里有一些技巧.

ruby-on-rails ruby-on-rails-3 asset-pipeline

13
推荐指数
2
解决办法
5712
查看次数

为什么stylesheet_link_tag没有链接到生产中的/ assets?

我刚刚为新的Rails 3.1应用程序进行了第一次部署,但资产似乎无法正常工作.我在部署时预编译了所有内容,它会public/assets像预期的那样出现.但是,例如stylesheet_link_tag "application"在我的布局中的输出有一个href指向/stylesheets/application.css.这显然不起作用.

奇怪的是,在开发模式下,一切似乎都很好,它/assets/application.css与预期相似.

我将我config/application.rbconfig/environments/production.rb文件与我们在资产管道上的另一个应用程序进行了比较,相关设置似乎是相同的.

我应该在哪里看?

ruby-on-rails sprockets asset-pipeline

13
推荐指数
2
解决办法
1万
查看次数

config.assets.precompile不添加供应商/宝石资产

我无法将供应商资产编译为根文件.

我希望独立提供以下资源(不与其他资产一起打包):

vendor/gems/neo-viz/app/assets/stylesheets/neo-viz.css.scss
vendor/gems/neo-viz/app/assets/javascripts/neo-viz.js.coffee
vendor/gems/neo-viz/app/assets/javascripts/lib/jQuery/jquery-1.6.1.min.js
vendor/gems/neo-viz/app/assets/javascripts/lib/arbor/arbor.js
Run Code Online (Sandbox Code Playgroud)

使用以下行:

config.assets.precompile += %w( jquery-1.6.1.min.js arbor.js neo-viz.js neo-viz.css )
Run Code Online (Sandbox Code Playgroud)

只预编译css文件并使其可用.为什么?

此外,在看到这个问题(在Rails中包含带有config.assets.precompile的子目录中的资产)之后,我尝试了:

config.assets.precompile += %w( jquery-1.6.1.min.js arbor.js neo-viz.js neo-viz.css lib/arbor/arbor.js arbor/arbor.js lib/jQuery/jquery-1.6.1.min.js jQuery/jquery-1.6.1.min.js   )
Run Code Online (Sandbox Code Playgroud)

但它没有任何区别.想法?

assets ruby-on-rails precompile asset-pipeline

13
推荐指数
1
解决办法
9812
查看次数

使用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资产管道似乎只提供不存在的文件版本!有没有人知道为什么会发生这种情况?

web-applications ruby-on-rails browser-cache asset-pipeline twitter-bootstrap

13
推荐指数
1
解决办法
2223
查看次数

Rails 3.2资产管道和RequireJS

我将使用Ruby on Rails 3.2启动一个富客户端Web应用程序.我打算使用RequireJS,但它似乎与Asset Pipeline发生冲突.据我所知,有什么后者基本上没有被串联相关资产,minifiying和压缩它们(纠正我,如果我错了),这似乎并不与装载JavaScript文件异步地非常兼容.

乍一看,资产管道似乎有更好的表现.但是,RequireJS允许您在模块中组织JavaScript代码,易于重用并管理其依赖项.

有没有办法将两者结合起来?如果没有,你会选择哪一个?

amd ruby-on-rails requirejs asset-pipeline

13
推荐指数
2
解决办法
6027
查看次数

heroku上rails应用程序中的sass错误:无法转储匿名类

在尝试为chrome创建源地图后,我从heroku收到以下警告http://blog.vhyza.eu/blog/2013/09/22/debugging-rails-4-coffeescript-and-sass-source-files -in-google-chrome / 它们表示什么,如果有的话,我应该改变什么?

我的gemfile:

source 'https://rubygems.org'
ruby '2.0.0'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.0.0'

# Use sqlite3 as the database for Active Record
#gem 'sqlite3'
gem 'pg'
gem 'devise'
gem 'font-awesome-rails'
gem 'bootstrap-sass', github: 'thomas-mcdonald/bootstrap-sass'
gem 'simple_form', git: 'https://github.com/plataformatec/simple_form.git'
gem 'carrierwave'
gem 'fog', '~> 1.3.1'
gem 'mini_magick'
gem 'rails_12factor'
gem 'friendly_id', '~> 5.0.0'

# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.0'
gem 'bourbon'

group :development do
  gem 'sass-rails-source-maps'
end

# Use …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails sass heroku asset-pipeline source-maps

13
推荐指数
2
解决办法
6522
查看次数