Tag: 资产

有些问题在生产模式下访问资产文件

我正在使用Ruby on Rails 4.1.1,在我的本地机器上,我有以下图像: # Directory: MyApp/app/assets/images/ logo.png 我使用Capistranogem上传MyApp,所有内容似乎都按预期工作。 但是当我尝试通过以下url的浏览器访问我的网站时 1) http://www.myapp.org/logo.png 2) http://www.myapp.org/assets/logo.png 3) http://www.myapp.org/images/logo.png 4) http://www.myapp.org/assets/images/logo.png 然后我得到一个错误页面: The page you were looking for doesn’t exist. You may have mistyped the address or the page may have moved. 在日志文件中,我得到: 1) ActionController::RoutingError (No route matches [GET] “/logo.png”): 2) ActionController::RoutingError (No route matches [GET] “/assets/logo.png”): 3) […]

Ruby on Rails资产管道无法正常工作

我刚刚在rails项目上做过ruby。 我已经创建了一个名为“animals”的控制器和一个用于索引操作的视图(index.html.erb)。 我不想包含’应用程序’javascript文件。 所以我创造了animals.js 该文件的内容是 //= require jquery //= require jquery_ujs //= require turbolinks //= require bootstrap-sprockets //= animals.coffee 我还将animals.js和animals.css添加到asset.rb Rails.application.config.assets.precompile += %w( animals.js ) Rails.application.config.assets.precompile += %w( animals.css ) 我的index.html.erb包含以下行 true %> true %> 当我检查服务器生成的源html代码时,我看到jquery scipts没有包含在页面中。 它只是animal.js文件。 Rails Omniauth 有关为什么包含这些脚本的任何建议? 谢谢。

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

Heroku非常缓慢地提供资产

我在我的Rails应用程序中提供资产时遇到了很大的麻烦。在我的VPS(由nginx,而不是Rails直接提供)上加载2KB图像需要42毫秒。 在Heroku上加载它有时可能需要1分钟以上。 奇怪的是,此时应用程序只是通过高压服务的一堆静态页面。 我的所有资产都是在本地预编译的。 我安装了rails_12factor和heroku_rails_deflate gems。 这是我的Sprockets配置: 配置/初始化/ assets.rb # Version of your assets, change this if you want to expire all your assets. Rails.application.config.assets.version = ‘1.0’ # Precompile additional assets. # application.js, application.css, and all non-JS/CSS in app/assets folder are already added. Rails.application.config.assets.precompile += %w( pages/home.js ) 配置/环境/ production.rb # Disable Rails’s static asset […]

Rails资产在开发而非生产中工作

岁,“我不明白链轮”的问题; 我在app / assets / javascript / jquery.fancybox.js中有一个资产,我使用来访问/加载它。 这适用于开发,但不适用于生产。 我正在查看日志,但必须有一些东西在那里,因为我看不到它正在加载的确切错误。 只是处理程序到位(错误只发生在’生产’)。 anways … 更新文件后,我正在运行“rake assets:precompile and service apache2 restart”。

Rails asset_host,cloudfront和heroku

我正在heroku上运行一个rails 4.0应用程序,对于我的生活,我无法使用我在asset_host中设置的主机获取我的资产URL。 我相信我的云端设置很好,因为我可以在我的cloudfronturl中替换我的任何资产url,并且该文件是从heroku中获取并缓存在cloudfront上的。 所以https://xxxxxxxxxxxx.cloudfront.net/assets/application-xxxxxxxx.js正确缓存https://myapp.com/assets/application-xxxxxxxxx.js 。 问题似乎是我的资产助手,例如javascript_include_tag,永远不会在staging.rb中使用asset_host设置。 我加载页面时看到的是我所有的js和css文件都来自https://myapp.com/assets/ 我的分段设置如下所示: # Full error reports are disabled and caching is turned on config.consider_all_requests_local = false config.action_controller.perform_caching = true # Disable Rails’s static asset server (Apache or nginx will already do this) config.serve_static_assets = true # Compress JavaScripts and CSS config.assets.compress = true # Don’t fallback to assets pipeline […]

资产管道预编译所有资产文件夹子目录

我喜欢保持我的资产高度组织,但是,我遇到了预编译的问题。 它没有拿起子目录。 以下是路径: assets >fonts >images >>backgrounds >>home >>icons 一切都适用于开发,但prod =没有去。 在我的生产环境中,我已经做过: config.assets.enabled = true config.assets.compile = true config.assets.precompile += [‘*.js’, ‘*.ico’, ‘*.png’, ‘*.jpg’] config.assets.initialize_on_precompile = true 我目前在application.rb文件中运行以下函数: # Add All Asset Pipeline Sub Folders Dir.glob(“#{Rails.root}/app/assets/images/**/”).each do |path| config.assets.paths << path end 这是我一直在努力的事情,没有太多运气。 我希望用几行代码动态地拾取创建/更改的所有目录,所以我不必逐个添加它们….. # Add All Asset Pipeline Sub Folders Dir.glob(“#{Rails.root}/app/assets/images/**/”).each do |path| config.assets.paths […]

使用ZURB Foundation的Sprockets :: FileNotFound

在Rails 3.2上使用基础4.3.1时,我收到以下错误: Sprockets::FileNotFound in Refinery/pages#home Showing …../gems/refinerycms-92675b5132ae/core/app/views/refinery/_javascripts.html.erb where line #16 raised: couldn’t find file ‘foundation’ (in …../app/assets/javascripts/application.js:15) 我检查了所有内容,资产已打开,降级为早期版本的Foundation。 但没有什么能像它应该的那样(我有同样的东西,运行不同的Rails项目) Gemfile中的相关行: source ‘https://rubygems.org’ gem ‘rails’, ‘3.2.13’ # Gems used only for assets and not required # in production environments by default. group :assets do gem ‘sass-rails’, ‘~> 3.2.3’ gem ‘coffee-rails’, ‘~> 3.2.1’ gem ‘compass-rails’ # See […]

阻止资产在本地进行预编译,以进行heroku rails asset_sync s3应用程序的本地生产测试

此应用程序部署在heroku上,并使用asset_sync gem和s3来提供资产。 我想在本地生产我的rails服务器以在部署到heroku之前测试一些东西。 当我运行rake assets:precompile我的本地机器将文件上传到我的s3存储桶(一切正常)但我也注意到资产是在我的本地公共文件夹中预编译的。 在S3上进行预编译并且本地似乎是多余的,有时我希望资产预编译为S3,有时我可能希望使用来自公共目录的资产运行本地生产服务器而不打扰上传/引用S3。 那么我如何配置我的机器以阻止资产在本地进行预编译? 我愿意接受任何配置系统的方法。 马上 我在.bash_profile中添加了几个变量来存储我的AWS凭据。 export AWS_ACCESS_KEY_ID=xxx export AWS_SECRET_ACCESS_KEY=yyy export S3_BUCKET_NAME=my_bucket_name export FOG_PROVIDER=AWS export FOG_DIRECTORY=my_bucket_name 我试过rails environment / production.rb条目: config.serve_static_assets = false 谢谢

sprockets重复文件命名

我的资产路径中有以下文件: javascripts/abc.js templates/abc.js.mustache # this gets compiled to abc.js 当然,他们都会被要求作为assets/abc.js 有修复吗? 如果不是,需要修改Sprockets源的哪一部分? 我的想法是,如果引擎可以删除扩展,那么可以添加后缀。