标签: asset-pipeline

rake assets:预编译未定义的方法目录?为零:NilClass

在尝试创建资产时:为生产网站预编译我第一次遇到此错误.

 rake assets:precompile undefined method directory? for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

我已经成功更新了网站并完成了一项资产:之前多次预编译.

完整的例子:

# RAILS_ENV=production rake assets:precompile --trace                        
/usr/local/rvm/gems/ruby-1.9.2-p290@pm/gems/rack-1.3.4/lib/rack/backports/uri/common_192.rb:53: warning: already initialized constant WFKV_
** Invoke assets:precompile (first_time)
** Execute assets:precompile
/usr/local/rvm/gems/ruby-1.9.2-p290@pm/gems/rack-1.3.4/lib/rack/backports/uri/common_192.rb:53: warning: already initialized constant WFKV_
rake aborted!
undefined method `directory?' for nil:NilClass

Tasks: TOP => assets:precompile
(See full trace by running task with --trace)
Run Code Online (Sandbox Code Playgroud)

我期待着有人对这一点有所了解,我一直在绞尽脑汁,谷歌搜索答案数小时.

rake ruby-on-rails-3 asset-pipeline

11
推荐指数
2
解决办法
4131
查看次数

JST未定义为rails 3.1应用程序

关于资产管道和javascript模板的大多数rails 3.1教程让我相信资产管道会获取任何*.jst文件并将它们打成一个可用于*.js文件的JST变量.但是,当我尝试加载*.jst模板时,我当前难以处理以下错误:

Uncaught ReferenceError: JST is not defined

有什么指针吗?

ruby-on-rails asset-pipeline

11
推荐指数
3
解决办法
1万
查看次数

Heroku总是运行资产:使用Rails 3.2的生产环境进行预编译

我将Heroku环境设置为暂存,但我的资产始终在生产环境中编译.

这是heroku config:

GEM_PATH            => vendor/bundle/ruby/1.9.1
LANG                => en_US.UTF-8
PATH                => bin:vendor/bundle/ruby/1.9.1/bin:/usr/local/bin:/usr/bin:/bin
RACK_ENV            => staging

我在production.rb文件中添加了一个例外,因此我知道在编译资产时它正在运行哪个环境.服务器启动只是正常运行heroku run console显示我正在运行升级.

它只是在运行时assets:precompile始终处于生产阶段.

如果需要,我很乐意发布任何其他配置文件.

我可以补充一点,我在Heroku上运行Rails 3.2.2和Cedar堆栈


输出来自heroku run rake about:

About your application's environment
Ruby version             1.9.2 (x86_64-linux)
RubyGems version         1.3.7
Rack version             1.4
Rails version            3.2.2
JavaScript Runtime       therubyracer (V8)
Action Pack version      3.2.2
Active Support version   3.2.2
Middleware               Rack::Cache, ActionDispatch::Static, Rack::Lock, #, Rack::Runtime, Rack::Auth::Basic, Rack::MethodOverride, ActionDispatch::RequestId, Rails::Rack::Logger, ActionDispatch::ShowExceptions, ActionDispatch::DebugExceptions, ActionDispatch::RemoteIp, ActionDispatch::Callbacks, ActionDispatch::Cookies, …

ruby-on-rails heroku ruby-on-rails-3 asset-pipeline

11
推荐指数
1
解决办法
4280
查看次数

ActionView :: Template :: Error(未预编译):在heroku雪松上

更新:

事实证明,有时results.image是零或"",所以这打破了应用程序,因为资产管道正在寻找像""这样的图像而没有找到它.现在我没有显示图像,如果没有图像,但我将不得不为缺失的图像添加默认图像......这应该是一个更永久的修复.


关于heroku cedar和Rails资产管道这个问题,我有很多问题,我尝试了很多解决方案,但是没有一个能够解决,而且可能是因为我遇到的问题有一个皱纹我没见过其他地方.

我的应用程序使用Rails 3.2.6,我已经将它部署在Heroku的雪松堆栈上.这是一个基本的搜索应用程序,通过websolr搜索附加的postgres数据库,所以当你加载索引(索引#index)而没有params [:q] .present?你有一个搜索框,这很好用.但是当我在搜索框中输入内容并点击提交,并且索引#index再次加载但这次尝试显示结果时,我得到:

app[web.1]: Completed 500 Internal Server Error in 440ms
app[web.1]: 
app[web.1]: ActionView::Template::Error ( isn't precompiled):
app[web.1]:     12:         - @results.each do |result|
app[web.1]:     13:           %li
app[web.1]:     14:             %div
app[web.1]:     15:               = image_tag result.image
app[web.1]:     16:             %div
app[web.1]:     17:               = result.title
app[web.1]:     18:             %div
app[web.1]:   app/views/index/index.html.haml:15:in `block in _app_views_index_index_html_haml___4350601325072829986_32734540'
app[web.1]:   app/views/index/index.html.haml:12:in   _app_views_index_index_html_haml___4350601325072829986_32734540'
Run Code Online (Sandbox Code Playgroud)

关于我的具体案例和我见过的其他人有什么奇怪的是以下几行:

ActionView::Template::Error ( isn't precompiled):
Run Code Online (Sandbox Code Playgroud)

对于我所见过的所有其他问题,括号中有一个css文件,即("foo.css"未预编译),或者在我看来它应该是("index.css")没有预编译).但这里只是空白!

这是我试图开始工作的暂存部署,所以我尝试运行RAILS_ENV =暂存rake资产:precompile(然后提交结果),但这并没有解决它.我甚至尝试在视图中删除(注意那里没有任何实际的样式).什么都行不通,我很茫然.任何帮助将不胜感激.

作为参考,这是我的gemfile:

source 'https://rubygems.org'

gem 'rails', '3.2.6'
gem 'pg'
gem 'haml-rails'
gem 'mongoid'
gem 'sunspot_rails', '~> …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails heroku asset-pipeline

11
推荐指数
1
解决办法
7746
查看次数

Rails资产预编译只是不工作

我已经将Rails应用程序推送到Heroku并继续遇到以下问题:

我将更改保存到我的主css.scss文件(在资产/样式表中)或资产/图像中的图像,推送到git,将其推送到heroku,然后重新加载页面,只是发现这些资产没有已装满了.

这也是本地服务器上的一个小问题,但输入:

rake assets:precompile
Run Code Online (Sandbox Code Playgroud)

并重新加载本地服务器通常工作,而做

heroku run rake assets:precompile
Run Code Online (Sandbox Code Playgroud)

然后重新推动什么也没做.我已经四处寻找信息并且没有找到任何特别有帮助的东西.

值得注意的是,在我的config/application.rb中(其中一些是钓鱼的结果):

# Enable the asset pipeline
config.assets.enabled = true

if defined?(Bundler)
  # If you precompile assets before deploying to production, use this line
  Bundler.require(*Rails.groups(:assets => %w(development test)))
  # If you want your assets lazily compiled in production, use this line
  # Bundler.require(:default, :assets, Rails.env)
end
Run Code Online (Sandbox Code Playgroud)

config/environments/production.rb中:

# Disable Rails's static asset server (Apache or nginx will already do this)
config.serve_static_assets = false

# Compress JavaScripts …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails heroku ruby-on-rails-3 asset-pipeline

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

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

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

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

11
推荐指数
2
解决办法
7906
查看次数

Rails没有缩小

我正在开发一个不会在生产中缩小CSS或JS的项目.

不幸的是,我从来没有遇到过这个问题,而且我对资产​​管道如何详细调试问题并不熟悉.

我的问题是,我需要检查哪些要点/设置以确保启用?

它正确地将不同的文件组合成一个JS和CSS文件......它只是没有缩小.

到目前为止,我已经添加config.assets.js_compressor = :uglifierproduction.rb,并uglifierGemfile,但仍然没有骰子.

我正在使用从Rails 3.2.12升级的Rails2

ruby ruby-on-rails-3 asset-pipeline ruby-on-rails-3.2

11
推荐指数
1
解决办法
8421
查看次数

从rails中的特定URL提供静态文件

假设我有一个文件"example.txt",它位于我的Rails应用程序中的assets/files文件夹中.在制作时,我可以通过网址'/assets/example.txt'访问此文件

如何设置我的routes.rb文件,以便在访问'example.txt'时可以访问example.txt的内容?

routes ruby-on-rails file asset-pipeline

11
推荐指数
1
解决办法
6525
查看次数

如何使用Grails asset-pipeline插件对JS和CSS进行分组?

我目前正在使用Grails 资源插件,我有许多像这样定义的模块:

bootstrap {
    resource url:'js/libs/bootstrap/bootstrap.min.js'
    resource url:'css/libs/bootstrap/bootstrap-responsive.css'
    resource url:'css/libs/bootstrap/bootstrap-glyphicons.css'
    resource url:'css/libs/bootstrap/bootstrap.min.css'
}
Run Code Online (Sandbox Code Playgroud)

这非常方便,因为它将Javascript和CSS文件组合在一起形成一个概念性的Bootstrap模块.

我现在正在研究资产管道插件,看来文件只能require是同一类型的其他文件,这意味着我现在有两棵依赖树(CSS&JS)而不是一棵,这是一个问题,因为存在相互依赖性,例如,bootstrap.js取决于bootstrap.css.

asset-pipeline插件是否允许声明类型间依赖关系?如果没有,处理这个问题的最佳方法是什么?

grails asset-pipeline

11
推荐指数
1
解决办法
1148
查看次数

使用Rails资产管道与webpack保存资产的利弊是什么?

来自webpacker gem:

Webpacker可以轻松使用JavaScript预处理器和捆绑器Webpack 2.x.x +来管理Rails中类似应用程序的JavaScript.它与资产管道共存,因为Webpack的主要目的是类似app的JavaScript,而不是图像,CSS,甚至是JavaScript Sprinkles(所有这些都继续存在于app/assets中).

但是,也可以将Webpacker用于CSS,图像和字体资源,在这种情况下,您甚至可能不需要资产管道.当专门使用基于组件的JavaScript框架时,这几乎是相关的.

为什么与基于组件的框架使用Webpacker进行资产更相关?如果我使用React,从资产管道对Webpack获取资产有什么不同?

javascript ruby-on-rails asset-pipeline reactjs webpack

11
推荐指数
1
解决办法
1471
查看次数