Tag: 资产管道

从rails中的assets文件夹提供大型媒体文件

我想将一些相当大的声音文件放入rails中的assets文件夹中。 /app/assets/sounds — file1.wav —-file2.wav 通过以下URL调用它们时 http://localhost:3000/assets/file1.wav Rails(3.2.x)文件将被“服务”(不知何故),但我永远无法在浏览器中播放它。 但是,如果我将这些文件放入公共文件夹,它们将被提供并可以播放。 我认为这与以下事实有关:公共文件夹没有被rails触及但是由rack(afaik)提供服务。 我找到了使用send_file的解决方案,但这真的需要吗?

资产管道在rails生产环境中不起作用

我在使用Rails部署到VPS时遇到问题。 我的应用程序在开发环境中运行良好,但是当我使用Capistrano进行生产时,我遇到了问题。 我使用的是独角兽,rails 3.2.13和ruby 1.9.3 我遇到的问题是当我访问我的生产网站时,我收到了“模板丢失”错误: Template is missing Missing template site/index with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :haml]}. Searched in: * “/home/deployer/apps/my-app/releases/20130417030832/app/views” * “/home/deployer/apps/my-app/shared/bundle/ruby/1.9.1/gems/devise-2.2.3/app/views” * “/home/deployer/apps/my-app/shared/bundle/ruby/1.9.1/bundler/gems/piggybak_paypal-b892954868c7/app/views” * “/home/deployer/apps/my-app/shared/bundle/ruby/1.9.1/gems/piggybak_variants-0.0.15/app/views” * “/home/deployer/apps/my-app/shared/bundle/ruby/1.9.1/gems/piggybak-0.6.28/app/views” * “/home/deployer/apps/my-app/shared/bundle/ruby/1.9.1/bundler/gems/rails_admin-b8465f738261/app/views” * “/home/deployer/apps/my-app/shared/bundle/ruby/1.9.1/gems/kaminari-0.14.1/app/views” 所以,我认为这可能是资产预编译问题。 当我运行rake资产:在我的本地开发环境中进行预编译时,我遇到了问题: /Users/ac/.rvm/rubies/ruby-1.9.3-p392/bin/ruby /Users/ac/.rvm/gems/ruby-1.9.3-p392/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets [RailsAdmin] RailsAdmin initialization disabled by default. Pass SKIP_RAILS_ADMIN_INITIALIZER=false if you need it. rake aborted! […]

assets:initialcompile在initialize_on_precompile为false时连接到DB

我的config/application.rb有config.assets.initialize_on_precompile = false并且bundle exec rake assets:precompile仍尝试连接到我的数据库。 我将database.yml中的database.yml名称更改为不存在的数据库,以便我可以判断它何时尝试连接。 $ be rake assets:precompile rake aborted! FATAL: database “aaa” does not exist

带有Rails资产管道和S3主机的SVG字体

我有一个Rails项目,托管在Heroku上,我只是将我的资产托管到S3。 对于一些自定义字体(来自icomoon的SVG字体),这一切都很顺利。 他们没有工作,当我查看我的网络资源时,我可以看到我的S3存储桶没有显示: @font-face{font-family:’Starter-Icons’;src:url(https://.s3.amazonaws.com/fonts/Starter-Icons.eot);src:url(https://.s3.amazonaws.com/fonts/Starter-Icons.eot?#iefix) 但是,使用S3托管的其他资产(图像,样式表等)包括正确的存储桶名称。 我的font-face声明在.less文件中(这不需要是.less.erb文件吗?) @font-face { font-family: ‘Starter-Icons’; src:font-url(“Starter-Icons.eot”); src:font-url(“Starter-Icons.eot?#iefix”) format(’embedded-opentype’), font-url(“Starter-Icons.woff”) format(‘woff’), font-url(“Starter-Icons.ttf”) format(‘truetype’), font-url(“Starter-Icons.svg#Starter-Icons”) format(‘svg’); font-weight: normal; font-style: normal; } 我的所有字体都在/app/assets/fonts 。 我已经按照接受的答案中的步骤进行了操作 ,但事实上我的存储桶名称没有出现在字体中,这让我相信这是一个不同的问题。 编辑 我正在使用asset_sync gem,其配置如下: if defined?(AssetSync) AssetSync.configure do |config| config.fog_provider = ‘AWS’ config.fog_directory = ‘starterapp’ config.aws_access_key_id = ENV[‘STARTER_AWS_ACCESS_KEY_ID’] config.aws_secret_access_key = ENV[‘STARTER_AWS_SECRET_ACCESS_KEY’] # Don’t delete files from the store […]

为什么我对资产管道的请求“没有路由匹配”?

我正在努力升级应用程序以使用Rails 3.1,我正在尝试使用资产管道。 作为测试,我已将foobar.js添加到app/assets/javascripts 。 安装程序 在application.rb ,我添加了config.assets.enabled = true 。 继续本指南 ,我认为这就是我所要做的。 检查出来 如果我加载控制台并检查Rails.application.config.assets.paths ,我确实在加载路径中看到了app/assets/javascripts 。 此外,如果我检查MyAppName::Application.assets ,我会得到一个具有相同路径的Sprockets::Environment对象。 这对我来说都很好看。 试着用它 在视图中,我使用的是javascript_include_tag(‘foobar’) 。 这将输出以下HTML: 错误 在该链接后出现错误: No route matches [GET] “/javascripts/foobar.js” 我缺少一个设置吗? 其他详情 我目前正在使用: ruby1.9.2-P290 轨,3.1.0.rc6 sprockets-2.0.0.beta.14(Rails需要)

使用Passenger / Capistrano部署到Nginx服务器后未显示的图像

嗨我正在使用Capistrano将我的第一个Rails应用程序部署到Ubuntu 16服务器,除了图像没有在生产环境中显示外,一切都很顺利。 在生产服务器上,映像位于以下路径中: /myapp/current/public/assets 但是如果我在浏览器中看到这个,我的破碎图像链接给了我这个(见图片),这是标题图像的断开链接。 奇怪的是, /myapp/current/public/assets中有一个.svg文件,它在浏览器中完美显示,在下图中是显示的路径 这是我的Capfile # Load DSL and set up stages require “capistrano/setup” # Include default deployment tasks require “capistrano/deploy” set :rbenv_type, :user # or :system, depends on your rbenv setup set :rbenv_ruby, ‘2.3.1’ require ‘capistrano/rbenv’ require ‘capistrano/bundler’ require ‘capistrano/rails’ # Load custom tasks from `lib/capistrano/tasks` if you have any defined […]

Rails资产管道使用字体和纱线

我有一个现有的rails应用程序,我正在一个单独的分支机构实施yarn来管理我的供应商资产。 我的应用程序堆栈是: ruby2.4.0 铁轨5.1.4 节点9.4.0 纱线1.3.2 安装yarn之后,我运行了yarn init ,它在项目根目录中生成了一个package.json。 添加几个包后,它看起来像: # package.json { “name”: “my-project-name”, “version”: “1.0.0”, “private”: true, “repository”: “my-repo”, “author”: “me”, “license”: “MIT”, “dependencies”: { “bootstrap”: “3”, “font-awesome”: “^4.7.0”, “jquery”: “^3.3.1”, “jquery-backstretch”: “^2.1.16”, “jquery-ujs”: “^1.2.2”, “waypoints”: “^4.0.1” } } 我在app / assets下创建了几个文件,用于包含来自node_modules样式表和javascripts: # app/assets/javascripts/node_modules.js //= require jquery //= require jquery-ujs //= require bootstrap/dist/js/bootstrap.min.js […]

Javascript资产管道:404错误 – 如何在Rails中包含Google分析代码?

我正在尝试将Google Analytics包含在我的Rails应用中,但是Rails的资产管道存在问题。 我创建了一个新文件( app/assets/javascripts/google-analytics.js ),其中包含了Google提供的Javascript代码。 对于application.html.erb我添加了一行: javascript_include_tag ‘google-analytics’ if Rails.env.production? 。 不幸的是,它在生产中不起作用。 推送到Heroku后,源代码包括: 。 但它无法找到javascript文件,即,如果我在源代码中单击此链接,则会生成404错误页面。 我究竟做错了什么? 更新:如果我将Rails.application.config.assets.precompile += [‘google-analytics.js’]到production.rb它会起作用。 如果我将此行添加到assets.rb而不是production.rb它现在可以工作。 我宁愿把它放在assets.rb以保持整洁。 有谁知道为什么它不使用assets.rb ? 是否可以直接将JS文件包含在/public/assets/google-analytics.js文件夹中? 然后我不需要在/app/assets/javascripts/google-analytics.js包含该文件,我不需要production.rb或assets.rb的预编译行? 更新前的Heroku日志尾: heroku[router]: at=info method=GET path=”/assets/application-1d520c66bc88***583e462611.css” host=***.herokuapp.com request_id=*** fwd=”***” dyno=web.1 connect=0ms service=2ms status=304 bytes=93 heroku[router]: at=info method=GET path=”/assets/application-2b1c01f66fb87e***bd707657bc1acf7.js” host=***.herokuapp.com request_id=*** fwd=”***” dyno=web.1 connect=1ms service=2ms status=304 bytes=93 heroku[router]: at=info method=GET path=”/javascripts/google-analytics.js” host=***.herokuapp.com […]

在Capistrano部署之后,Rails资产没有编译

我正在使用Capistrano部署我的Rails应用程序,似乎资产没有被编译,除非我进入服务器并运行RAILS_ENV=development bundle exec rake assets:precompile手动RAILS_ENV=development bundle exec rake assets:precompile 。 我已经尝试按照capistrano / rails github页面上的说明进行操作,但我不确定我是否错过了某些内容。 运行cap production deploy成功完成。 但我不知道如何检查assets:precompile任务是否实际运行。 运行cap production deploy:assets:precompile也成功完成,但服务器上没有明显变化。 版本 Server version: Apache/2.4.7 (Ubuntu) Phusion Passenger 5.0.22 ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux] Rails 4.2.5 capistrano (3.1.0) capistrano-bundler (1.1.4) capistrano-rails (1.1.6) capistrano-rbenv (2.0.4) Capfile require ‘capistrano/setup’ require ‘capistrano/deploy’ require ‘capistrano/rbenv’ require ‘capistrano/rails/assets’ Dir.glob(‘lib/capistrano/tasks/*.cap’).each […]

404使用rails 3.2在CSS中显示背景图像时

我在rails 3.2 app中手动添加了assets / images目录,并添加了image background.png。 当提到来自css的图像时 background: url(“assets/background.png”) no-repeat; 我得到了404,但资产/样式表和资产/ javascripts出现了。 **更新 看起来好像我还原到显式调用样式表即 代替 背景图像正确显示