标签: asset-pipeline

向Rails 3.1资产管道添加自定义方法?

如何将我的自定义方法添加到我的资产中,例如像Rails一样使用'asset_path'帮助程序的css文件?

有了Rail自己的助手,我可以这样写:

# some.css.erb:

<%= asset_path 'a_image.png' %>

# How can I write this:

<%= my_custom_method 'a_image.png' %>
Run Code Online (Sandbox Code Playgroud)

我已经尝试了很多方法但是找不到合适的方法.你知道吗?

谢谢

ruby-on-rails-3 asset-pipeline

10
推荐指数
1
解决办法
1938
查看次数

JS文件双重包含在rails app中

我有几个rails 3.1应用程序,我在所有这些都遇到了这个问题.

我有一堆js文件包含在我的application.js文件中.这是我的application.js:

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

问题是,当development.rb,我将config.assets.debug设置为true时,我的所有javascript文件都会被包含在标头中.实际上,它们并未明确地包含在内,而是单独包含一次,一次包含在已编译的application.js文件中.js包含标签如下所示:

<script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-ui.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>
<script src="/assets/animation_elements.js?body=1" type="text/javascript"></script>
<script src="/assets/categories.js?body=1" type="text/javascript"></script>
<script src="/assets/facebox.js?body=1" type="text/javascript"></script>
…
Run Code Online (Sandbox Code Playgroud)

那到底是什么?结果是各种JQuery onClick()行为正在执行两次和其他废话.这有什么问题?为了记录,这是我的整个development.rb文件:

Geobooks::Application.configure do
  # Settings specified here will take precedence over those in config/application.rb

  # In the development environment your application's code is reloaded on
  # every request.  This slows down response time but is perfect for development
  # …
Run Code Online (Sandbox Code Playgroud)

javascript ruby-on-rails asset-pipeline

10
推荐指数
1
解决办法
2987
查看次数

如何在Rails 3.1(gem + Asset Pipeline)中配置CKEditor

我已经在我的Rails 3.1应用程序上成功配置了https://github.com/galetahub/ckeditor的ckeditor gem .我现在的问题是我无法弄清楚如何配置CKEditor.在启用了资产管道的Rails 3.1应用程序中,根据自述文件使用的文件根本不存在.

ruby-on-rails ckeditor asset-pipeline

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

config.assets.version在Rails中做了什么?

我在文档中找不到这个问题的明确答案.许多参考文献只是说"更改版本会使资产无效".那么,指纹机制是不是一样的,它根据文件内容和名称生成哈希标签?有谁知道究竟config.assets.version是为了什么?

ruby-on-rails-3 asset-pipeline

10
推荐指数
1
解决办法
4304
查看次数

使用rails 4资产管道找不到预编译的CSS文件

我开始使用rails并且我有一个在dev(webrick)中运行的应用程序.

问题是:在生产中找不到预编译的CSS文件.

现在我将它托管在heroku上并进行部署.我有一条消息说资产是预编译的(因此它不是编译错误),并且默认设置都是一切.

我有/ public/assets文件夹,一切都在那里.我甚cat至可以使用应用程序 - *.css文件,并获得我应该拥有的全部内容.

现在,当我尝试访问CSS文件时,它给出了一个错误404(即使它是一个自动生成的css链接使用  <%= stylesheet_link_tag "application", :media => "all" %>).因此,我确实对CSS链接进行了硬编码并不是问题.

我不确定下一次检查的执行情况.

如果您对输出感到好奇,那么目前可以在此处公开访问.

ruby-on-rails heroku asset-pipeline ruby-on-rails-4

10
推荐指数
1
解决办法
3835
查看次数

与coffeescript和Rails资产管道的JSON错误

我正在使用Rails 3.2.14而没有问题......

我最近重命名application.jsapplication.js.coffee,现在收到JSON错误.

JSON::GeneratorError

only generation of JSON objects or arrays allowed
  (in /.../app/assets/javascripts/application.js.coffee)
Run Code Online (Sandbox Code Playgroud)

即使我删除了所有内容,application.js.coffee我仍然会收到错误.

当我尝试直接查看它(http://localhost:3000/assets/application.js),它同样的问题:

throw Error("JSON::GeneratorError: only generation of JSON objects or arrays allowed\n  (in /.../app/assets/javascripts/application.js.coffee)")
Run Code Online (Sandbox Code Playgroud)

我已针对任何潜在问题梳理了我的应用程序,但一切看起来非常标准.

ruby-on-rails coffeescript asset-pipeline

10
推荐指数
2
解决办法
1920
查看次数

Rails 4:如何只编译已更改的资产?

对于Rails 3,这个问题turbo-sprockets-rails3看起来很棒.

对于Rails 4,似乎存在一些关于是否已经修复的争议.

我目前正在使用Rails 4,看起来因为Capistrano deploy:assets:update_asset_mtimes接触所有资产,deploy:assets:precompile同样重新编译所有资产.重新编译是我的最长步骤cap deploy.

理想情况下,这应该由一些基于校验和的清单系统替换,以便只重新编译那些实际已更改(或依赖于已更改的资产)的资产.

做这个的最好方式是什么?(假设我们仍然在服务器上进行,而不是开发机器.)

ruby-on-rails asset-pipeline ruby-on-rails-4

10
推荐指数
1
解决办法
4762
查看次数

使用browsersync与rails - 观看编译的css文件

我正在尝试使用资源管道将rails 同步与rails配合使用.

我正在尝试在我的rails应用程序中使用browsersync.它有许多很棒的功能,观看css文件进行更改并将这些更改注入页面就是其中一项功能.

默认情况下,rails会在请求时将sass编译为css.所以,afaik,不可能给browserync提供app.css的路径.

在我的浏览器中同步配置文件 -

files: ["rails/doesnt/have/the/css/yet/application/so/i/dont/know.what/to/do.css", ]
Run Code Online (Sandbox Code Playgroud)

如果我将配置指向sass文件,页面将重新加载(完全刷新)而不是注入更改.这是不好的.我希望将css更改注入页面.

files: ["assets/application.scss", ] //this causes full page refresh, which is bad.
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何将browsersync指向已编译的css?

ruby-on-rails watch sprockets asset-pipeline

10
推荐指数
1
解决办法
1479
查看次数

无法预编译资产Rails 4 bootstrap-sass DXImageTransform错误

我试图预编译资产用于生产.除非我将bootstrap和font-awesome资产包含为静态文件(或来自CDN的主机),否则sass-rails在尝试编译生产资产时会失败.我的Gemfile看起来像这样:

# Default asset gems
gem 'coffee-rails', '~> 4.0.0'
gem 'sass-rails'  , '~> 4.0.3'
gem 'uglifier'    , '>= 1.3.0'

# Default gems
gem 'jbuilder', '~> 2.0'
gem 'sdoc'    , '~> 0.4.0', group: :doc

# Added gems
gem 'carrierwave'
gem 'pg'
gem 'turbolinks'
gem 'restforce'

# Asset gems
gem 'jquery-rails'
gem 'autoprefixer-rails'
gem 'bootstrap-sass'
gem 'font-awesome-sass'
gem 'handlebars_assets'
gem 'iconv'
Run Code Online (Sandbox Code Playgroud)

当我尝试编译资产时,我收到以下错误:

?  stylesheets git:(master) ? rake assets:precompile
(in /home/ubuntu/spice-conduit)
rake aborted!
Sass::SyntaxError: Invalid CSS after "    filter: progid": expected ";", was …
Run Code Online (Sandbox Code Playgroud)

sass sprockets asset-pipeline bootstrap-sass ruby-on-rails-4

10
推荐指数
1
解决办法
1968
查看次数

自动编译资产并使用nginx(开发)为它们提供服务

我正在开发一个拥有大量资产的Rails应用程序,但遗憾的是无法减少.在生产中,这不是问题,但在开发中,每个访问页面的约20个资产请求不能由应用程序服务器(如webrick或Thin)快速提供.

所以我开始在开发中使用nginx来提供任何服务public/assets.请注意,nginx纯粹是一个开发工具 - 我们不打算在生产中使用它.

为了它的工作,我只需要做两件事:

  • 设为config.assets.debugfalse
  • rake assets:precompile

可悲的是,我的设置存在两个问题(后者是最重要的问题):

  • 每次资产变更都需要rake assets:precompile再次手动运行
  • 为了让app服务器获取新编译的资产,我必须重新启动它.

什么是正确的nginx/Asset Pipeline设置,在预编译后不需要重新启动Rails服务器?

自动编译也是受欢迎的.

ruby-on-rails nginx asset-pipeline

10
推荐指数
1
解决办法
818
查看次数