Tag: 资产管道

资产管道找不到JS文件

我的Rails.application.config.assets.paths包含我想要的资产的目录(自动完成): – /Users/kiranb/application/app/assets/images – /Users/kiranb/application/app/assets/javascripts – /Users/kiranb/application/app/assets/stylesheets – /Users/kiranb/application/vendor/assets/javascripts – /Users/kiranb/application/vendor/assets/stylesheets – /Users/kiranb/.rvm/gems/ruby-1.9.2-p290@application/gems/rails3-jquery-autocomplete-1.0.5/lib/assets/javascripts – /Users/kiranb/.rvm/gems/ruby-1.9.2-p290@application/gems/jquery-rails-1.0.19/vendor/assets/javascripts autocomplete gem的lib / assets / javascripts包含: autocomplete-rails-uncompressed.js autocomplete-rails.js 我的application.js包括: //= require jquery //= require jquery_ujs //= require jquery-ui //= require autocomplete-rails //= require_tree . 但是,我一直收到错误: 找不到’autocomplete-rails’文件 (在/Users/kiranb/application/app/assets/javascripts/application.js:11) 不过,它可以轻松找到任何其他资产。 我究竟做错了什么?

Heroku + Rails 3.1:asset_path未定义?

我尝试将rails 3.1.3 app部署到heroku,但在浏览页面时不断收到以下错误: ActionView::Template::Error (undefined method `asset_path’ for #<#:0x00000002e52480>): 我使用heroku推荐的“雪松”堆栈。 知道为什么我会遇到这个问题吗? 我是否需要进行更多配置? 提前致谢! 编辑:再次工作。 我忘了在application.rb中添加“require’sprockets / railtie’”…

为什么我的rails资产管道中的js文件没有被编译?

我遇到了类似于这个问题的问题: Rails资产管道不包括application.js中的必需文件然而,这个问题已经关闭,所以我重新询问它,但是我的具体情况。) 环境: Ruby 2.0.0,Rails 3.2.8,OSX 10.7.5,Chrome 28.0.1500.95 我遇到的主要问题 放置在“/ app / assets / javascripts”中的文件似乎没有编译或出现在“/ public / assets”中 一个例子 如果我在app / assets / javascripts中放置一个这样的test.js文件: alert(“Hello!”); 然后在我的应用程序中重新加载页面,此警报应该出现。 (我正在复制Ryan Bates在资产管道上的Railscast中在约6:30的video中所做的事情)但是,没有出现警报。 调试尝试 我做了一些测试来尝试调试这个。 (正如下面的@Aidan所推荐的)如果我“rm -rf public / assets”,然后在我的布局中添加“javascript_include_tag’test’”,则会出现警报。 但是,也许是因为我是n00b,我不知道这有助于我调试问题。 如果我将// = require_test添加到app / javascripts / application.js到我的清单文件,这不会导致警报出现。 我的清单文件(app / javascripts / application.js) // This is a manifest file that’ll […]

你在版本控制中添加公共/资产吗?

在rails 3.1中,当您预编译资产时,rails会创建public / assets目录并在那里添加文件。 你是版本控制公共/资产/ *吗?

Rails:是否可以从资产文件中获取控制器和操作名称?

我想在我的资产管道中做这样的事情: 的application.js //= require jquery //= require jquery_ujs //= require_tree ./includes //= require global //= require //= require / 现在这不起作用,因为资产文件无法访问params变量。 现在有没有办法从资产中获取当前控制器动作名称? 或者是整个项目的预编译资产文件,这是不可能的?

仅在刷新页面后加载javascript

我正在使用Rails 4.我有一个javascript文件app / assets / javascripts / exotic_fonts.js,它为字体添加了一些javascriptfunction。 当我加载主页时,这个javascript文件会自动加载到主页上,但是它没有自动加载到其他页面上,例如/ user / show,并且缺少function。 但是,如果我刷新页面,则加载javascript文件并返回function。 我想知道如何解决它。 此外,是否可以加载某个页面上的一些javascript文件? 谢谢。

在rails应用程序中运行rake任务

我想在rails应用程序中运行资产预编译任务,因为我有许多依赖项将更改代码,在这种情况下,无论何时更改我需要运行脚本,因为我无法让服务器访问它们所以我提供从他们自己的GUI可以运行脚本,所以,我已经构建了UI来运行任务与一些参数,如 system(“Template=’#{params[:template]}’ Theme=’#{params[:theme]}’ rake assets:precompile) 我从UI获取了两个值(params [:template],params [:theme])。我想在另一个路径(站点路径)中运行此任务的另一个意思是管理端UI是那个任务应该在Site目录中执行, if(params[:theme_script] == “true”) template=Template.where(:name => params[:template]).first if template theme = template.themes.where(:name => params[:theme]).first if theme # Dir.chdir “#{THEMEPATH}”do # `Template=”#{template.name}” Theme=”#{theme.name}” rake assets:precompile` # end # sleep 10 # system(“#{Rails.root.to_s}/lib/shell_script.sh”) # RunRake.run_rake(template.name,theme.name) # Dir.chdir “#{THEMEPATH}”do # Rake::Task[‘assets:precompile’].invoke # end ENV[“Template”] = template.name ENV[“Theme”] = theme.name precompile_task = […]

Rails 4 Asset Pipeline:使用和不使用指纹编译

Rails 4改变了资产的指纹识别方式(用于浏览器缓存清除): Old Strategy: application.css?12345 Rails 3.2: application-12345.css and application.css Rails 4.0: application-12345.css 虽然这很有道理,但如果样式表被其他服务(在我们的案例中为Zendesk)使用则会出现问题。 这个外部站点需要来自Rails应用程序的CSS,但它不知道指纹(又名:摘要)。 有没有办法编译带有和没有指纹的所有资产? 或者也许是另一种方法来解决这个问题?

在Heroku Cedar上部署Rails 3.1.3之后,图像消失了

在heroku雪松上部署后,图像消失。 我有一个像这样的CSS: :css /* */ table.table thead .sorting { background: url(‘assets/datatables/sort_both.png’) no-repeat center right; } table.table thead .sorting_asc { background: url(‘assets/datatables/sort_asc.png’) no-repeat center right; } table.table thead .sorting_desc { background: url(‘assets/datatables/sort_desc.png’) no-repeat center right; } /* */ table.table thead .sorting_asc_disabled { background: url(‘assets/datatables/sort_asc_disabled.png’) no-repeat center right; } table.table thead .sorting_desc_disabled { background: url(‘assets/datatables/sort_desc_disabled.png’) no-repeat center […]

资产管道中有条件的javascript需求

我正在努力应对资产管道。 我正在从Google CDN加载dojo,将其放入我的模板中: = javascript_include_tag ‘http://ajax.googleapis.com/ajax/libs/dojo/1.6.1/dojo/dojo.xd.js’, :’data-dojo-config’ => %Q(dojoBlankHtmlUrl:’/blank.html’, baseUrl: ‘assets/’, modulePaths: {custom: ‘javascripts/modules’}) 如果在本地运行或者CDN关闭,我只想要回退到本地版本。 我想过这样做: script typeof(dojo) === “undefined” && document.write(unescape(‘%3Cscript src=”js/libs/dojo-1.6.1.min.js”%3E%3C/script%3E’)); 但我不喜欢它,因为它在资产管道中运作。 我想在vendor vendors/assets/javascripts/dojo保留vendors/assets/javascripts/dojo 。 如何获得资产管道服务的后备。 有没有办法在资产管道中声明条件需求。 我想要的是运行一些javascript测试,并根据结果提供文件。 谢谢