Tag: 链轮

rake资产:预编译:Rails中的nodigest 4

在Rails 3中有一个rake资产:预编译:nodigest任务,它编译资产并在/ public / assets目录中编写没有摘要部分的资源。 在Rails 4中,这已被删除,默认情况下,所有资产都只使用摘要进行预编译。 由于各种原因,我还需要一些资产的非消化版本。 有没有简单的方法来启用旧的行为?

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

好的,当我尝试使用资产管道时,我收到此错误。 我不明白是什么导致了它。 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 […]

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

我刚刚为新的Rails 3.1应用程序进行了第一次部署,但资产似乎无法正常工作。 我在部署时预编译了所有内容,并且它在预期的public/assets 。 但是,我的布局中的stylesheet_link_tag “application”的输出有一个指向/stylesheets/application.css的href。 这显然不起作用。 奇怪的是,在开发模式下,一切似乎都很好,它像预期的那样链接到/assets/application.css 。 我将config/application.rb和config/environments/production.rb文件与我们在资产管道上的另一个应用程序进行了比较,相关设置似乎相同。 我应该在哪里看?

在Rails 4上禁用Sprockets资产缓存

另一个问题“ 在开发中禁用Sprockets资产缓存 ”解决了如何在Rails 3.2中禁用Sprockets缓存。 你如何在Rails 4上做同样的事情? 我正在开发一个资产管道深处的gem,并且必须清除tmp/cache/*并重新启动Rails会变得很累。

禁用Asset Pipeline / Sprockets Rails 4.1

我似乎无法找到在Rails 4.1中禁用资产管道的方法。 我看到Rails 3.2的很多信息。 我想用Grunt / GulpJs和bower来处理我的所有资产,我似乎无法找到适合自己的东西。 相反,我找到了一个不错的数量,但大多数不适用于我或被打破。 有half-pipegem 。 然而,半管道依赖于Rails 4.0,我在Rails 4.1上,我找不到强制Gem在不同版本的Rails中安装的地方,如果可能的话。 这个问题扩展到了比我预想的更多问题。 基本上我只需要知道如何禁用资产管道,除非如何集成GruntJS。

Heroku推送错误:rake资产上的“NameError:未初始化的常量Uglifier :: VERSION”:预编译

我在尝试推向生产时收到以下错误。 这是推送的结果: $ git push production master Counting objects: 124, done. Delta compression using up to 4 threads. Compressing objects: 100% (118/118), done. Writing objects: 100% (124/124), 19.73 KiB | 0 bytes/s, done. Total 124 (delta 66), reused 1 (delta 0) remote: Compressing source files… done. remote: Building source: remote: remote: —–> Ruby app detected […]

编译资产时“堆栈级别太深”

在运行brew upgrade或其他更新我的gems / ruby​​版本之后,我的rake assets:precompile任务不再有效。 我收到此错误: rake aborted! stack level too deep (in /Users/Jordan/Development/reejay/rails/reejay/app/assets/stylesheets/blog_player.css.scss) /Users/Jordan/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2.2/lib/rake/task.rb:162 Tasks: TOP => assets:precompile:primary rake aborted! Command failed with status (1): [/usr/local/Cellar/ruby/1.9.3-p0/bin/ruby /…] /usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/1.9.1/rake/file_utils.rb:53:in `block in create_shell_runner’ /usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/1.9.1/rake/file_utils.rb:45:in `call’ /usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/1.9.1/rake/file_utils.rb:45:in `sh’ /usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/1.9.1/rake/file_utils_ext.rb:39:in `sh’ /usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/1.9.1/rake/file_utils.rb:80:in `ruby’ /usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/1.9.1/rake/file_utils_ext.rb:39:in `ruby’ /Users/Jordan/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.1.1/lib/sprockets/assets.rake:9:in `ruby_rake_task’ /Users/Jordan/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.1.1/lib/sprockets/assets.rake:17:in `invoke_or_reboot_rake_task’ /Users/Jordan/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.1.1/lib/sprockets/assets.rake:25:in `block (2 levels) in ‘ /usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/1.9.1/rake/task.rb:205:in `call’ /usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/1.9.1/rake/task.rb:205:in […]

需要指令 – 文件url

在Rails 3(Sprocket)中,有没有办法使用url将javascript文件加载到远程站点? 例如,我想使用require指令在.js文件中使用类似的东西, //= require http://example.com/remote_file.js

在RSpec自动化测试期间使Sprockets缓存无效

在我的Rails应用程序中,我有一个.js.erb文件,它有一个变量,可以根据一些Ruby代码动态设置。 var myTimer = ; 该应用程序工作正常,但我在一些自动化测试中遇到问题。 在使用此JavaScript的RSpecfunction测试中会出现此问题。 我的spec文件有许多测试可以动态更改ruby MyApp.config.timeout_time时间来测试不同的场景。 在我的spec文件中,第一个示例通过,其余示例失败。 我终于意识到这种情况正在发生,因为myTimer永远不会在JavaScript方面得到更新。 当第一个测试运行时,JavaScript将使用当前在Ruby中设置的值进行编译。 当我为第二次测试更改Ruby计时器时,RSpec仍在使用JavaScript中的先前值。 有没有办法告诉Sprockets / Rails使文件或缓存的一部分无效,以便重建JavaScript? 我一般不想关闭缓存,我只需要一种方法在需要时基于每个测试使application.js无效。 我可能能够“触摸”文件系统上的一个JavaScript文件,使sprockets认为文件已被更改,但我真的不想这样做。

链轮中的条件要求

如何使用Sprockets有条件地要求资产? 我在询问之前搜索了解决方案,并在Sprockets存储库中找到了这个讨论 – 条件要求 在那里讨论的解决方案是使用ERB: 我试过这样的方式: app.js.erb Rake文件 def bundle_app(debug) env = Sprockets::Environment.new env.append_path “app/” env.js_compressor = Uglifier.new assets = env.find_asset(“app.js.erb”) return assets.to_s end 但它会导致以下错误: 未定义的局部变量或方法`debug’用于# 肯定有一些易于修复的错误,但我是Ruby的新手并且无法发现它。