我不太确定实际的行为是什么,所以我的第一个问题是:
来自gem(在我的Spree中)的资产(例如javascripts)是否总是被编译?我不使用Spree的javascripts,因此不希望它们被编译.我不需要在我application.js或任何其他javascript文件中,但是
rake assets:precompile
Run Code Online (Sandbox Code Playgroud)
虽然编译它们.我只是不希望他们躺在我的public/assets文件夹中.
所以我想我的问题是,有没有办法禁止从gem编译javascripts?
我遇到了Heroku的问题,显示我的'places.js'没有预编译,即使我在雪松堆栈上运行,并且在slug编译期间它正在运行rake预编译任务.所以我尝试在本地运行它rake assets:precompile RAILS_ENV=production,事实上rails并没有预编译我的/app/assets/javascripts/places.js.coffee.erb资产.
我production.rb正在使用默认的rails 3.1配置,我甚至尝试从资产中删除.erb,但无济于事.
我还想过,因为我的places.js.coffee.erb资产不包含在链轮清单中(我手动将其包含在我的应用程序中),也许它只预编译清单中的资产.在清单中要求它也不起作用.
只有我application.js.coffee和`application.css正在预编译(有和没有摘要).
我发现的唯一问题可能是用于匹配资产的差的正则表达式,但默认值(?:\/|\\|\A)application\.(css|js)$与我的资产不匹配,因此应该包含它.
我不知道如何从这里排除故障.一切都是默认的.关于这里可能发生什么的任何想法?
我正在尝试做这项工作,但这让我很生气.我已经把它设置好了
application.rb中
config.assets.paths << Rails.root.join("vendor", "assets", "javascripts").to_s
Run Code Online (Sandbox Code Playgroud)
(.to_s因为它返回一个对象,而我在这里想要一个字符串).我找不到解决方案,并让我发疯,因为供应商的样式表目录工作,但javascripts不是.
我怎样才能做到这一点?
错误返回:
<h1>Routing Error</h1>
<p><pre>No route matches [GET] "/assets/ext-all-debug.js"</pre></p>
Run Code Online (Sandbox Code Playgroud) 我正在使用资产管道(在Rails 3.1.3中)并且正在努力使其在生产中工作.
在我的/app/assets/stylesheets目录中,我有以下文件:
application.css --> this is the default rails one
stylesheet.css --> This is my custom stylesheet
Run Code Online (Sandbox Code Playgroud)
我花了很多时间将我的stylesheet.css包含在/public/assets/生产目录中(通过运行rake assets:precompile),我最终通过在我的application.rb文件中添加以下行来实现:
config.assets.precompile += ['stylesheet.css']
Run Code Online (Sandbox Code Playgroud)
我知道stylesheet.css在生产中有正确的预编译文件.
我遇到的问题是stylesheet_link_tag与我的stylesheet.css文件一起使用时.事实证明:
<%= stylesheet_link_tag "stylesheet" %><link href="/stylesheets/stylesheet.css" media="screen" rel="stylesheet" type="text/css"> 在生产中被解析我希望解决的路径/assets/stylesheet.css 就像在开发中一样.
更令人惊讶的是,application.css即使<%= stylesheet_link_tag "application"%>解决了这个问题,表现也很完美<link href="/stylesheets/stylesheet.css" media="screen" rel="stylesheet" type="text/css">.我不明白的是rails 3.1中不存在public/stylesheets /目录.
任何的想法 ?
说,在vendor/assets我有两个子目录,/alpha并且/beta,每一个命名的文件temp.jpg.根据我的理解,我们提出了一个GET请求/assets/temp.jpg,我很确定是否提供了alpha目录中的那个.但我怎样才能区分他们两个呢?我认为这可以通过asset_url助手完成,但我不太确定 - 如果有人可以建议这将是伟大的.
我现在用的是 CssSplitter模块通过CristianPeters.我希望在资产期间进行拆分:预编译任务,到目前为止我唯一成功的方法是修补Sprockets :: StaticCompiler.希望有更好的方法来做到这一点.
我很感激任何建议
我在网上购买了一个漂亮的Twitter Bootstrap,这将为我的Rails 3.2.8应用程序增添趣味.该软件包包含以下目录:
/css
/img
/js
Run Code Online (Sandbox Code Playgroud)
当然,这些文件将在其中具有相互之间的相对链接.是否存在将此类内容整合到资产管道中的标准方法,还是将其公开的标准做法?
ruby-on-rails asset-pipeline twitter-bootstrap ruby-on-rails-3.2
我有一个Rails 3应用程序,我试图用我的数据库中的每个Nation(少于300个国家)填充javascript变量作为JSON对象.这是我nations.js.erb文件中的相关行:
_this.nations = <%= Nation.all.to_json :only => [:id], :methods => :text %>;
Run Code Online (Sandbox Code Playgroud)
当我在浏览器中调用我的js文件时,/assets/users.js这需要民族文件,该_this.nations变量完全填充.当我尝试进行预编译时,我得到以下内容:
$> rake assets:precompile
$> rake aborted!
uninitialized constant Nation (in nations.js.erb)
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:是否可以Nation从js.erb文件中引用模型或任何模型进行预编译?我也尝试使用我的NationsHelper但我的错误只是改为未初始化的常量NationsHelper.
我对RoR很新,所以如果需要我没有提供的相关信息,请问问.
我使用rake 10.0.4并且我已经升级到10.1.0,但现在当我部署到我的登台服务器时它会抛出我:
rake aborted!
undefined method `push' for LL("db"):Rake::Scope
/home/alter/.rvm/gems/ruby-1.9.3-p429@3.2.13/gems/seedbank-0.1.3/lib/seedbank/dsl.rb:11:in `override_task'
/home/alter/.rvm/gems/ruby-1.9.3-p429@3.2.13/gems/seedbank-0.1.3/lib/tasks/seed.rake:42:in `block in <top (required)>'
/home/alter/.rvm/gems/ruby-1.9.3-p429@3.2.13/gems/seedbank-0.1.3/lib/tasks/seed.rake:1:in `<top (required)>'
/home/alter/.rvm/gems/ruby-1.9.3-p429@3.2.13/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:245:in `load'
/home/alter/.rvm/gems/ruby-1.9.3-p429@3.2.13/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:245:in `block in load'
/home/alter/.rvm/gems/ruby-1.9.3-p429@3.2.13/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:236:in `load_dependency'
/home/alter/.rvm/gems/ruby-1.9.3-p429@3.2.13/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:245:in `load'
/home/alter/.rvm/gems/ruby-1.9.3-p429@3.2.13/gems/seedbank-0.1.3/lib/seedbank.rb:19:in `block in load_tasks'
/home/alter/.rvm/gems/ruby-1.9.3-p429@3.2.13/gems/seedbank-0.1.3/lib/seedbank.rb:19:in `each'
/home/alter/.rvm/gems/ruby-1.9.3-p429@3.2.13/gems/seedbank-0.1.3/lib/seedbank.rb:19:in `load_tasks'
/home/alter/.rvm/gems/ruby-1.9.3-p429@3.2.13/gems/seedbank-0.1.3/lib/seedbank/railtie.rb:9:in `block in <class:Railtie>'
/home/alter/.rvm/gems/ruby-1.9.3-p429@3.2.13/gems/railties-3.2.13/lib/rails/railtie.rb:184:in `instance_exec'
/home/alter/.rvm/gems/ruby-1.9.3-p429@3.2.13/gems/railties-3.2.13/lib/rails/railtie.rb:184:in `block in load_tasks'
/home/alter/.rvm/gems/ruby-1.9.3-p429@3.2.13/gems/railties-3.2.13/lib/rails/railtie.rb:184:in `each'
/home/alter/.rvm/gems/ruby-1.9.3-p429@3.2.13/gems/railties-3.2.13/lib/rails/railtie.rb:184:in `load_tasks'
/home/alter/.rvm/gems/ruby-1.9.3-p429@3.2.13/gems/railties-3.2.13/lib/rails/engine.rb:423:in `block in load_tasks'
/home/alter/.rvm/gems/ruby-1.9.3-p429@3.2.13/gems/railties-3.2.13/lib/rails/application/railties.rb:8:in `each'
/home/alter/.rvm/gems/ruby-1.9.3-p429@3.2.13/gems/railties-3.2.13/lib/rails/application/railties.rb:8:in `all'
/home/alter/.rvm/gems/ruby-1.9.3-p429@3.2.13/gems/railties-3.2.13/lib/rails/engine.rb:423:in `load_tasks'
/home/alter/.rvm/gems/ruby-1.9.3-p429@3.2.13/gems/railties-3.2.13/lib/rails/application.rb:145:in `load_tasks'
/home/alter/.rvm/gems/ruby-1.9.3-p429@3.2.13/gems/railties-3.2.13/lib/rails/railtie/configurable.rb:30:in `method_missing'
/home/alter/workspace/MyApp/Rakefile:7:in `<top (required)>'
/home/alter/.rvm/gems/ruby-1.9.3-p429@3.2.13/bin/ruby_noexec_wrapper:14:in `eval'
/home/alter/.rvm/gems/ruby-1.9.3-p429@3.2.13/bin/ruby_noexec_wrapper:14:in `<main>'
(See full trace by running task with --trace) …Run Code Online (Sandbox Code Playgroud) 我想在rails中禁用资产预编译功能.我正在使用用户可以下载代码的应用程序,我想避免更改下载的html文件中的css和js文件的名称 - 以便用户可以运行index.html并查看所有内容.
这是应用程序:http: //impress-builder.herokuapp.com/