Tag: 资产管道

如何从Rails 3.1中的控制器引用编译资产?

我在我的控制器中使用PDFkit来构建一系列PDF,将它们压缩,然后将它们发送给用户。 为了控制输出样式,我告诉PDFKit在内容生成期间使用哪些样式表。 我需要传递CSS文件的文件引用。 由于Rails现在正在编译和重命名我的样式表,我不知道如何在我的控制器中引用已编译的CSS资源。 这就是我以前做的事情: InvoicesController false)) kit.stylesheets << "#{Sass::Plugin.options[:css_location]}/application.css" kit.to_file("#{file_date_string}.pdf") # snip end end Sass :: Plugin.options [:css_location]现在返回错误的位置,更不用说application.css不再是文件的有效名称。 我应该提一下,我有一个app / assets / application.css文件作为我的SCSS文件的清单,它通过stylesheet_link_tag()方法在我的视图中正常工作。 基本上我正在寻找的是一个控制器,相当于asset_path(),以便做这样的事情: kit = PDFKit.new(render_to_string(:show, :layout => false)) kit.stylesheets << asset_path('application.css') kit.to_file("#{file_date_string}.pdf") 有人可以帮忙吗?

rails bootstrap-sass assets编译错误 – 未定义的变量alert-padding

所有的道路都指向bootstrap-sass 推荐链: railscast-328(twitter bootstrap basics)指的是 http://www.sitepoint.com/twitter-bootstrap-less-and-sass-understanding-your-options-for-rails-3-1/指的是 https://github.com/jlong​​/sass-bootstrap反过来惊叹有一个新的官方自助程序端口供sass at at https://github.com/twbs/bootstrap-sass这是twitter-bootstrap文章中的另一个选项 它被报告为bootstrap-rails gem的一个问题: https : //github.com/anjlab/bootstrap-rails/issues/91 我相信我正确安装了它 gem gem ‘sass-rails’, ‘>= 3.2’ # sass-rails needs to be higher than 3.2 gem ‘bootstrap-sass’, ‘~> 3.1.1′ 安装(在资产组的外部和内部尝试),application.css.scss包含 @import “bootstrap”; 只要。 但它给了我一个错误 尝试bundle exec rake assets:precompile会出现此错误: rake aborted! Undefined variable: “$alert-padding”. (in /home/joe/.rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/bootstrap-sass-3.1.1.0/vendor/assets/stylesheets/bootstrap/_alerts.scss) /home/joe/.rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/bootstrap-sass-3.1.1.0/vendor/assets/stylesheets/bootstrap/_alerts.scss:10 /home/joe/.rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/sass-3.2.7/lib/sass/script/variable.rb:49:in `_perform’ /home/joe/.rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/sass-3.2.7/lib/sass/script/node.rb:40:in `perform’ /home/joe/.rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/perform.rb:298:in […]

Rails 4:如何创建使用资产管道的自定义404页面?

有许多解决方案可用于创建自定义error handling页面,但Rails 4几乎没有: 基本Rails 404错误页面 Rails中的动态错误页面 鼓励人们修改404.html in /public的标准答案对我不起作用,因为我想使用驻留在资产管道中的CSS主题。 有没有办法让html文件可以访问资产管道中定义的那些样式? 如果没有, 有没有办法创建一个可以访问管道的自定义error handling程序?

Rails 3 – 预编译文件夹中的所有css,sass和scss文件

所以我有一个具有页面特定样式和css的项目。 我已将这些文件放入他们自己的目录assets/#{type}/page-specific/并且我正在尝试编写正则表达式规则以通知预编译器对它们执行此操作。 这对于房子的JS方面很有用,但csscertificate更加困难。 # page specific style files: app/assets/stylesheets/page-specific/something.css.sass app/assets/stylesheets/page-specific/default.css app/assets/stylesheets/page-specific/home.css.scss 我正在使用我的config/initializers/assets.rb文件中的这个正则表达式: Rails.application.config.assets.precompile << /(page-specific\/[^(css)]+.css)/ 问题是[^(css)]部分没有完全符合我的要求,因为它会过滤掉任何包含ac或s的内容。 我真正想要的是一种匹配整个字符串“css”并停在那里的方法。 此外,我知道传统的智慧是简单地编写样式,以便您不需要特定于页面的样式表,而是支持包含整个样式表的application.css。 我同意。 然而,这是一个非常大的代码库,并且将这个Rails升级带回家有很多时间压力,并且没有时间花费分析和重构这种性质的东西。 我试过让delimiter指令[^\.]停在第一个点,但是这会在一些使用点作为分隔符的供应商样式表上jquery.treeview.css.sass例如jquery.treeview.css.sass 。 显然我可以只更改文件名,但我们是一个正在发展的大型团队,我希望尽可能灵活地使规则更加灵活,这样我们就没有潜入的文件,如果它们没有获得,它们会在生产中爆炸预编译。

图像和资产在rails 3.1.0上的生产服务器中不起作用

我将服务器切换到生产状态,无法加载任何图像。 这一切都在开发模式下工作正常但是当我切换到生产时它都停止工作我已经启用了server_static_assets但仍然没有任何效果。 这样做的任何帮助

生产中的Rails资产

我刚刚迁移到rails 3.1,我在开始使用资产管道方面遇到了麻烦。 我运行: bundle exec rake assets:precompile RAILS_ENV=production在将额外的css文件添加到config.assets.precompile += [‘scaffold.css’, ‘other.css’, ‘other.js’]之后bundle exec rake assets:precompile RAILS_ENV=production我的所有文件都位于在/app/asset图像,javascripts或样式表路径中。 在rake任务之后,我可以看到manifest.yml文件,但它缺少我添加到config.assets.precompile的其他css和js文件 这是我生活在prod上的manifest.yml文件: connect.gif:连接-b85d46914c10cb653f3444c3529b83eb.gif connect.png:连接-bce549a396f27cc5f7b315190ee3385a.png d.jpeg:d-c5f2ca3025794efdc341159538f4a0bf.jpeg data.png:数据d225a9937a1aa78805e704ada167b2d0.png fb.png:FB-2e743f3607323f9d21dd2e96b5c95d4b.png feed.png:进料-fd4c0dc513639edd0ba2f39a063fdc90.png grid.png:网b3db76abb46477b06c15055df8412c79.png i.png:I-5ac52498083d9dfc5f898cdf666bc9c0.png infb.png:INFB-80208a4e1bd3d2a03f23097a7d19fe7e.png r.png:R-ba27ded8b8873c851cd9aaf8697f8092.png rails.png:导轨,e4b51606cd77fda2615e7439907bfc92.png份额.JPEG:股权47877a532c58510f38eeb534122b4846.jpeg share.png:股权b9939bdcdf8b082eeb27697592258b9a.png signup.jpeg:注册-23dfea4e8af95dae93ab254162e01fc2.jpeg tc.png:TC-abb1838a7396c3a0a54e68ecb80cd225.png tweet.png:鸣叫-3865676af138fa7d80e0e416210f2fa0.png yellow.png:黄 – b2257e0f9bb17cd4b44faaee30df8fa6.png jquery.flot.js:jquery.flot-944582c3d888856c9d82964ea8cf0bcc.js jquery-ui.min.js:jquery-ui.min-4258e47b4067 3a02bedfda178628bfba.js jquery.min.js:jquery.min-17322428695737103f15e8b9db8b5909.js application.js:application-f71535809bb0483163e3e4d857abe6d0.js 这里发生了什么? 我用touch restart.txt和nginx重启了这两位乘客。 我已经阅读了有关此问题的所有文档。 nginx error.log: cache: [GET /] miss ActionView::Template::Error (scaffold.css isn’t precompiled): […]

生产环境中的rack-zippy和选项-d不提供静态资产

我这里有一个非常奇怪的问题。 我在我的rails应用程序中使用rack-zippy gem,如果我在没有预编译资产的development环境中启动它,它就像一个魅力。 使用-d param而不使用。 在生产模式(相同的机器,相同的项目,相同的目录,相同的gem),它也有效。 但是,如果我使用-d param( bundle exec rails server -d )启动它来守护服务器,则不会提供预编译的资产。 可以用thin和webrick重现,但不与unicorn 。 日志说: ActionController::RoutingError (No route matches [GET] “/assets/application-b9b75968aed42128cfd75fb78df1e4d1.js”): 但: $ l public/assets/application-b9b75968aed42128cfd75fb78df1e4d1.js -rw-r–r– 1 public/assets/application-b9b75968aed42128cfd75fb78df1e4d1.js 来自config / environments / production.rb: config.serve_static_assets = true 来自config / application.rb: config.middleware.swap(ActionDispatch::Static, Rack::Zippy::AssetServer) 和: $ rake middleware use Rack::Sendfile use Rack::Zippy::AssetServer (…) 我现在有些困惑。 有任何想法吗?

如何播种图像的路径?

Organization和Image具有1-to-1 relationship 。 Image有一个名为filename的列,它存储文件的路径。 我在资产管道中包含了这样一个文件: app/assets/other/image.jpg 。 播种时如何包含此文件的路径? 我试过我的种子文件: @organization = … @organization.image.create!(filename: File.open(‘app/assets/other/image.jpg’)) # I also tried: # @organization.image.create!(filename: ‘app/assets/other/image.jpg’) 两者都生成错误: NoMethodError: undefined method `create!’ for nil:NilClass 我检查了debugger并确认它不是 @organization是零。 如何使这项工作并将文件的路径添加到Image模型? 更新 :我尝试了以下内容: @image = Image.create!(organization_id: @organization.id, filename: ‘app/assets/other/image.jpg’) 我也尝试过: image = @organization.build_image(filename: ‘app/assets/other/image.jpg’) image.save 播种时两次尝试都会产生错误: CarrierWave::FormNotMultipart: You tried to assign a String or a […]

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

在运行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 […]

在Rails中使用config.assets.precompile在子目录中包含资源

我在Heroku上运行了一个Rails 3.1.3应用程序,利用S3通过asset_sync进行资产托管。 我的app/assets/css目录中包含一个包含两个文件的子目录: main.css.scss和categories.css.scss 。 我的production.rb有以下行: config.assets.precompile += [ ‘admin/main.css.scss’, ‘admin/categories.css.scss’, ‘print.css’, ‘products.css.scss’, ‘services.css.scss’ ] 当我推送到Heroku时,我的所有资产都被预编译并上传,但这两个文件除外。 我是否需要执行某种黑暗魔法才能在这个过程中包含这两个文件?