Tag: 资产管道

资产管道:仅对一个控制器使用javascript文件

在Ruby on Rails v4中,我想要仅为特定控制器加载js文件(或一组js文件)。 这样做的标准方法是什么? 在application.js中有//= require tree . 线。 我假设这需要删除所以我并不总是加载每个文件。 但那又怎样? 使用Mycontroller时是否总会加载名为mycontroller.js的文件?

使用rails资产管道在javascript文件中编码问题

我正在使用rails 3.1和资产管道(ruby 1.9.2)。 尝试提供具有utf-8编码字符串的javascript js.erb文件时出现以下错误 invalid byte sequence in US-ASCII 我在environment.rb文件中设置了Encoding.default_external = “UTF-8” 。 如何让资产管道使用不同的编码? 编辑 当我在文件外部生成utf-8字符时(此时通过从DB查询),只会显示错误。 如果我添加,错误消失了 到文件的顶部。 我猜这里有某种编码猜测,但是如果没有那种hacky解决方案我该如何避免呢?

资产在预编译时说“未预编译”

好的,当我尝试使用资产管道时,我收到此错误。 我不明白是什么导致了它。 Sprockets::Helpers::RailsHelper::AssetPaths::AssetNotPrecompiledError in Photos#show Showing …/app/views/photos/_photo_view.html.haml where line #2 raised: jquery.autocomplete isn’t precompiled Extracted source (around line #2): 1: – content_for :scripts do 2: = javascript_include_tag ‘jquery.autocomplete’ 但是,这是预先编译的。 我运行了rake assets:precompile RAILS_ENV=production在启动服务器之前rake assets:precompile RAILS_ENV=production ,在我的public/assets目录中我有文件: jquery-5550a245a55b28927b5552cac182e612.autocomplete.js以及.js.gz ,它准确地反映在清单中: #manifest.yml — application.js: application-4277323e3f7506b71f45c71e8a3a7c8f.js jquery.autocomplete.js: jquery-5550a245a55b28927b5552cac182e612.autocomplete.js jquery.cycle.all.min.js: jquery-183ef696b43944deaee5778d3094dbdd.cycle.all.min.js jquery.fancybox.js: jquery-e52e44b2b4fb349bade9beb91461a810.fancybox.js jquery.plupload.queue.js: jquery-f2e7f6ad7d2e5ca50235ed21f8d573cc.plupload.queue.js jquery.tools.js: jquery-c53e304240fa56767fe0f2a00cb4bceb.tools.js plupload.full.js: plupload-5dd26ee3fff6b627c19f196e9d1429dd.full.js application.css: application-ce5217e1714cbc4e9c3ff6c5dfc9b221.css […]

Rails图像和资产未正确加载

例如,在我的Rails应用程序中,我有类似的东西: .wax_seal { background: url(“wax-seal-small.png”); display: block; height: 100px; margin: 0 auto; width: 92px; } .wax_seal:active { background: url(‘wax-seal-small-broken.png’); } 在我的config/environments/production.rb文件中: # Disable Rails’s static asset server (Apache or nginx will already do this). config.serve_static_assets = true 我手动调用资产的编译: bundle exec rake assets:precompile 并且在名称末尾使用哈希创建文件: wax-seal-small-Uuhqwduhqwdoi234983jewf.png 所以这不起作用: background: url(“wax-seal-small.png”); 但这很好(当我在Chrome中手动输入时): background: url(“wax-seal-small-Uuhqwduhqwdoi234983jewf.png”); 我在这里错过了什么一步? 如何让我的CSS规则添加到那个小哈希? 在config/environments/production.rb添加config.assets.compile = true可以使它工作,但我在Rails指南中读到,由于显着的性能命中,这是一个不好的做法。

有没有办法在清单文件中的require_tree中添加一个例外?

有没有办法可以将目录中的所有文件包括在一个目录中,除了一个目录以外的所有目录? 所以类似于: require_tree . :except ‘this_one’ 只是想知道并且无法弄清楚文档在清单文件中的“require_tree”方法的位置。

asset:precompile生成的文件与stylesheet_link_tag(缺少摘要)在最小rails 4站点中生成的url不匹配

我正在使用Ruby 2.0.0-p247和Rails 4.0.0 如果我像这样制作一个最小的Rails 4网站: rails new minimal cd minimal rails generate controller home index tee config/routes.rb <<EOF Minimal::Application.routes.draw do root 'home#index' end EOF 然后预编译资产 rake assets:precompile 它生成如下资产: I, [2013-09-04T17:05:36.992951 #3549] INFO — : Writing /WORKINGDIR/minimal/public/assets/application-723d1be6cc741a3aabb1cec24276d681.js I, [2013-09-04T17:05:37.052303 #3549] INFO — : Writing /WORKINGDIR/minimal/public/assets/application-f1a14051f17824976271b9c0460232f0.css 但是,如果我在生产模式下启动服务器,请使用 RAILS_ENV=production rails s HTML中生成的URL不指向预编译的文件: 我希望,而是: 默认的config/environments/production.rb设置说使用摘要: config.assets.digest = true 但它似乎被选择性地忽略了? […]

Rails资产路径中的CSS未由ERB在开发中处理

我在/app/assets/stylesheets/styles.css.erb有一个带有以下内容的Rails应用程序: … #nestedbg { background-position: left top; background-image: url(); background-repeat: repeat-x; background-attachment: fixed; } … 当我运行rake assets:precompile然后运行rails s -e production ,一切都按预期工作。 但是,当我删除预编译资产并在开发中运行rails s ,CSS文件如上所示出现而不是被正确替换。 我尝试在/config/environments/development.rb放置config.assets.compile = true ,但没有帮助。 有任何想法吗? 谢谢。

如何在rails 3.1中显示控制器特定的javascript?

我有我的资产文件夹结构 assets javascripts products –product.js –productValidate.js store –store.js 我希望将project.js和projectValidate.js添加到我的application.js中,作为资产管道的一部分,仅当调用产品控制器中的操作时,并且当调用存储控制器中的操作时,调用store.js。 我怎样才能在rails 3.1中实现这一目标?

如何将config.assets.precompile用于目录而不是单个文件?

如何在生产中使用config.assets.precompile只包含’lib / assets / javascripts’,’lib / assets / stylesheets’,’vendor / assets / javascripts’和’vendor / assets / stylesheets’中的文件? 基本上是这样的: config.assets.precompile += %w( pagespecific.js anotherpage.js ) 但用于自动包含不是“app / assets / javascripts”或“app / assets / stylesheets”的特定目录中的文件。 *编辑:添加我最终用于页面特定js的解决方案 config.assets.precompile += [‘pages/*.js’]

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’ […]