Tag: 资产管道

Rails:为什么我的所有scss文件都没有编译?

我是rails的初学者,我认为我对如何组织样式表没有一个明确的想法。 目前,我的资产/样式表中有两个文件: application.css home.css 当我运行rake资产时:预编译 – 我意识到只有application.css被编译到我的public / assets文件夹中。 home.css怎么样? 更多信息 我希望home.css仅在从我的家庭控制器收到响应时加载。 我删除了* = require_tree。 来自application.css(因为我猜测home.css会包含在所有其他页面中 – 我是对的吗?) 我试图找到解决方案的原因是因为heroku抛出以下错误: ActionView::Template::Error (home.css isn’t precompiled): 2012-04-29T10:48:20+00:00 app[web.1]: 5: 2012-04-29T10:48:20+00:00 app[web.1]: 7: = stylesheet_link_tag “application” 2012-04-29T10:48:20+00:00 app[web.1]: 6: = javascript_include_tag “application” 2012-04-29T10:48:20+00:00 app[web.1]: 8: = stylesheet_link_tag params[:controller] 2012-04-29T10:48:20+00:00 app[web.1]: 9: = javascript_include_tag [:controller] 2012-04-29T10:48:20+00:00 app[web.1]: 10: = csrf_meta_tags […]

Heroku预编译资产失败

更新后,我的应用程序突然无法运行。 不确定出了什么问题。 基本上,当我推送到heroku时,我得到这些错误: Precompiling assets failed, enabling runtime asset compilation Injecting rails31_enable_runtime_asset_compilation 再高一点: rake aborted! Unexpected token: operator (>) (line: 19073, col: 9, pos: 605247) Error at new JS_Parse_Error (/tmp/execjs20121211-811-1z5vum.js:1720:22) at js_error (/tmp/execjs20121211-811-1z5vum.js:1728:15) at croak (/tmp/execjs20121211-811-1z5vum.js:2189:17) at token_error (/tmp/execjs20121211-811-1z5vum.js:2196:17) at unexpected (/tmp/execjs20121211-811-1z5vum.js:2202:17) at /tmp/execjs20121211-811-1z5vum.js:2580:17 at maybe_unary (/tmp/execjs20121211-811-1z5vum.js:2665:27) at expr_op (/tmp/execjs20121211-811-1z5vum.js:2685:45) at expr_ops (/tmp/execjs20121211-811-1z5vum.js:2692:24) at maybe_conditional […]

在不同主机上预编译具有相同摘要的资产

是否可以使用相同的摘要在不同的主机(流量路由)上编译资产? 例如,如果我的Rails 3.2应用程序部署到2个不同的主机host1和host2,我想在host1和host2上使用相同的摘要application-34a9sadas1238023a8.css

Rails app不会在弹性beanstalk aws上加载资源

对于上下文,我基本上遵循本指南来设置我的rails应用程序: https : //medium.com/@jatescher/how-to-set-up-a-rails-4-2-app-on-aws-with -elastic-豆茎,和PostgreSQL相关3f9f29c046e2 我的应用程序现在在AWS上运行: http : //ems-heroes-dev.elasticbeanstalk.com/ 运行Ruby 2.2的64位Amazon Linux 2015.03 v2.0.1(Puma) 但是,我无法加载任何资产。 这是我的config / environments / production.rb: EmsHeroes::Application.configure do config.cache_classes = true config.eager_load = true config.consider_all_requests_local = false config.action_controller.perform_caching = true config.serve_static_assets = true # Compress JavaScripts and CSS. config.assets.js_compressor = :uglifier config.assets.compress = true config.assets.compile = true # Bower asset paths […]

在SCSS Partial中使用Rails 3.1资产路径

我有以下设置: app/assets/stylesheets/application.css.scss /* *= require_self *= require fancybox */ /* COLORS.. */ /* MIXINS… */ /* FONT STACKS… */ /* IMPORTS */ @import “reset”; @import “supergrid”; @import “rails”; @import “app”; @import “forms”; @import “layout”; 在我的各个部分中,我遇到了资产路径的真正问题。 当在application.css.scss或清单加载的任何内容时,我可以使用: .example { background-image: image-path(“background.png”); } 但是,当我使用partial,例如my _layout.css.scss partial时,当我尝试相同的东西时,只能从编译文件中省略background-image属性。 似乎SCSS资产助手在部分内部不可用? 有没有人得到这个工作,我错过了一些明显的东西? 或者是不可能在部分中使用资产助手? 如果是这样,这是一个主要的主要问题,因为我的整个应用程序结构依赖于SCSS变量和部分之间共享的mixin。 我知道变量和mixin不在sprockets清单中共享,所以如果partials无法访问资产助手,那么我正在考虑必须将所有内容连接到一个scss文件中,这几乎违背了Sass和Sprockets的目的。 任何帮助将非常感谢!

Heroku在我的Ruby on Rails应用程序中找不到文件 – 即使它们就在那里?

当我尝试访问我的网站,然后检查我的Heroku日志,我看到这个错误: ActionView :: Template :: Error(无法找到文件’reset’2012-06-13T02:31:43 + 00:00 app [web.1] :(在/app/app/assets/stylesheets/application.css :4)): (application.css包含行* = require reset) 然后我想运行“heroku run bundle exec rake assets:precompile:all”但这会产生类似的错误: —–> Preparing app for Rails asset pipeline Running: rake assets:precompile rake aborted! couldn’t find file ‘main/first.js.coffee’ (in /tmp/build_3428u21sggsoc/app/assets/javascripts/application.js:1) Tasks: TOP => assets:precompile:primary (该文件是我的application.js中第一个需要的文件,其第一行是“// = require main / first.js.coffee”) 总结:我的应用程序在本地运行良好,但是当我部署到Heroku时,无法再找到这些文件。 有什么想法吗? 编辑:这是项目树。 (在应用程序之前还有一个目录,这是主项目目录,它还包含config,db,log等) 另一个编辑:.gitignore或.slugignore没有问题。

环境/开发资产路径的副本在gems目录中找不到jquery-ui-rails

我将config / environments / development.rb复制到config / environments / ci.rb。 当我使用RAILS_ENV = development运行时,资产搜索路径包括我的gem供应商目录,特别是jquery-ui-rails。 但是,当我使用RAILS_ENV = ci运行时,它没有。 从控制台,Rails.application.config.assets.paths通过开发评估到以下内容 irb(main):002:0> Rails.application.config.assets.paths => [“/var/www/ci/conflux/app/assets/images”, “/var/www/ci/conflux/app/assets/javascripts”, “/var/www/ci/conflux/app/assets/stylesheets”, “/var/www/ci/conflux/vendor/assets/stylesheets”, “/opt/comcast/ruby1.9.3/lib/ruby/gems/1.9.1/gems/jquery-rails-1.0.19/vendor/assets/javascripts”, “/opt/comcast/ruby1.9.3/lib/ruby/gems/1.9.1/gems/jquery-ui-rails-1.0.0/vendor/assets/images”, “/opt/comcast/ruby1.9.3/lib/ruby/gems/1.9.1/gems/jquery-ui-rails-1.0.0/vendor/assets/javascripts”, “/opt/comcast/ruby1.9.3/lib/ruby/gems/1.9.1/gems/jquery-ui-rails-1.0.0/vendor/assets/stylesheets”] 但对于ci我只得到以下内容: irb(main):002:0> Rails.application.config.assets.paths => [“/var/www/ci/conflux/app/assets/images”, “/var/www/ci/conflux/app/assets/javascripts”, “/var/www/ci/conflux/app/assets/stylesheets”, “/var/www/ci/conflux/vendor/assets/stylesheets”, “/opt/comcast/ruby1.9.3/lib/ruby/gems/1.9.1/gems/jquery-rails-1.0.19/vendor/assets/javascripts”]

字体真棒图标没有显示使用font-awesome-rails gem

我似乎无法找到适合我的答案。 图标显示为一个框: 我正在使用: font-awesome-rails (4.6.2.0) rails (4.2.3) 我使用以下命令在application.scss文件中导入了font-awesome-rails: @import “font-awesome”; 这是我为观点写的内容: 我试过在bootstrap之前和之后包含它。 我还尝试手动将字体文件夹添加到application.rb中的管道 config.assets.paths << Rails.root.join("app", "assets", "fonts") 清除tmp文件夹似乎也没有做任何事情。 我花了太多时间在这上面,请帮忙:(

防止缓存单个js文件

我的资产目录中有一个.js.erb文件。 这将读取一些特定于语言环境的配置 但是,当底层配置更改时,新文件未提供给我的浏览器。 我没有修改304。 如果我通过添加空格来更改.js.erb文件,则会正确提供新文件。 每次添加配置时都这样做会很痛苦。 有没有办法配置rails只是为了不缓存这个特定的文件? 谢谢你的任何建议。 编辑: 在资产管道上阅读更多内容 “在服务器启动后,资产在第一个请求上被编译和缓存.Sprockets设置必须重新生效的Cache-Control HTTP头以减少后续请求的请求开销 – 在这些请求上获得304(未修改)响应。 如果清单中的任何文件在请求之间发生了变化,则服务器将使用新的编译文件进行响应。“ 所以这里的问题是第一个请求被缓存 – 这是一个动态的javascript文件。 也许是防止这种缓存内联javascript的唯一方法?

在Rails 3.1基于资产的应用程序中包含两次javascript

虽然问题的标题与以前的标题非常相似,但我的问题似乎有所不同。 简而言之,js清单中的第一项包含两次。 这是我在Rails 3.1应用程序中的整个/app/assets/javascript/application.js文件: //= require jquery //= require jquery-ui //= require jquery_ujs //= require autocomplete-rails //= require utilities 这里是渲染页面源代码的片段: 请注意,如果我向application.js任何其他行移动到顶部,如下所示: //= require utilities //= require jquery //= require jquery-ui //= require jquery_ujs //= require autocomplete-rails 它总是第一个被包含两次的项目! UPDATE 作为临时解决方法,我在列表顶部添加了//= require dummy ,它指向一个空的dummy.js文件。 虽然它在渲染页面中出现两次,但它没有任何效果,因为它什么也没做。 另一方面,如果我在development.rb设置config.assets.debug = false ,正如经常建议的那样,那么我的所有javascript都会被加载两次: 和js动作被触发两次(例如,删除模型时确认对话框弹出两次) 朱塞佩