Tag: asset pipeline

javascript – 未编译用于生产的Twitter引导程序jquery插件

我正在使用seyhunak的gem开发一个带有Twitter Bootstrap的3.1 Rails应用程序。 在生产模式下,我能够通过管道预编译使用基本的bootstrap CSS和JS: RAILS_ENV=production bundle exec rake assets:precompile 使用gem文件: group :assets do gem ‘sass-rails’, ‘~> 3.1.5’ gem ‘coffee-rails’, ‘~> 3.1.1’ gem ‘uglifier’, ‘>= 1.0.3’ gem “twitter-bootstrap-rails” end 和application.js文件: //= require_tree . //= require jquery //= require jquery_ujs //= require twitter/bootstrap //= require bootstrap-tab //= require bootstrap-modal //= require bootstrap-dropdown //= require bootstrap-popover 该应用程序工作正常,除了模态和下拉列表等引导插件。 […]

在资产管道中编辑我的SASS样式表似乎打破了资产管道

这让我疯了 – 我有一个基于Bootstrap的Rails应用程序。 我已经连续几周了,今天我遇到了一个非常奇怪的问题。 如果我对任何样式表进行任何微不足道的更改(即添加新行并保存),我会松散一堆CSS格式。 如果没有一些如何发布我的所有代码等,这很难解释。最大的症状是丢失了我的Google字体。 这是我的application.css.scss文件的顶部: @import “font-awesome-sprockets”; @import “font-awesome”; @import url(http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,400,300,600,700); /*** BOOTSTRAP ***/ /* Needs to load first to overide the default CSS */ @import “bootstrap_custom”; @import “bootstrap-sprockets”; @import “bootstrap”; @import “timeline”; 在此之后我还有一些自定义CSS。 字体真棒和bootstrap CSS似乎仍然加载。 似乎消失的CSS代码是bootstrap_custom。 这是我的导航栏我有谷歌字体和一些自定义CSS的地方。 重新启动rails服务器无法修复它。 替换已编辑的css文件不起作用。 我真的必须恢复整个app目录的旧版本。 如果我用终端或TextMate更改文件并不重要 – 结果相同。 如果重要的话,我在OS X 10.10.1上运行Rails 4.1.8。 我必须hame配置错误或有一些奇怪的Rails服务器缓存或设置我在这里丢失。 我必须恢复整个app目录的事实会让我相信这一点。 UPDATE 我认为这是一个SASS或Bootstrap-sass问题。 我通过在线文件比较网站从两个版本运行CSS。 […]

Rails不会预编译.js.erb

为什么Rails不会预编译.js.erb资产? 我的config/application.rb : require File.expand_path(‘../boot’, __FILE__) require ‘rails/all’ Bundler.require(:default, Rails.env) module Sflitmap class Application < Rails::Application # these precompile OK config.assets.precompile += ['edge/edge.1.5.0.min.js', 'edge/ink-falling_edgeActions.js', 'edge/inkAnimationTrigger.js'] # this will not precompile config.assets.precompile += ['edge/ink-falling_edge.js.erb'] end end 我的config/environments/production.rb : Sflitmap::Application.configure do # Settings specified here will take precedence over those in config/application.rb. # Code is not reloaded […]

Typicons字体没有在heroku中显示

我在我的rails应用程序中使用typicons和heroku并且它在本地工作但不在生产中,我在heroku中没有得到任何路由错误,我不确定我缺少什么。 我在资源文件夹中有一个字体文件夹,我正在使用 config.assets.paths << Rails.root.join("app", "assets", "fonts") 在我的应用程序类下的config.application.rb文件中。 在typicons.css.scss里面(在stylesheets文件夹中)我有 @font-face { font-family: ‘typicons’; src: font-url(‘typicons.eot’); src: font-url(‘typicons.eot?#iefix’) format(’embedded-opentype’), font-url(‘typicons.woff’) format(‘woff’), font-url(‘typicons.ttf’) format(‘truetype’), font-url(‘typicons.svg#typicons’) format(‘svg’); font-weight: normal; font-style: normal; }

在Heroku的Rails应用程序中包含两次jQuery

我的问题类似于其他一些问题,但仍然没有为我的情况提供答案 我在Gemfile中的应用程序中包含了jQuery gem: gem ‘jquery-rails’ 在application.js中: //= require jquery //= require jquery-ui //= require jquery_ujs … //= require_tree . 我的development.rb有 # Do not compress assets config.assets.compress = false # Expands the lines which load the assets config.assets.debug = true 我的资产没有预先编译,没有公共/资产。 一切都在当地运行良好。 但是当我推送到heroku时,我会在页面上包含不同的application.js文件。 它不是一个清单文件,而是缩小了jQuery的版本。 因此我将jQuery包含两次。 以下是我的网页源代码: … 当我点击/assets/application.js?body=1我看到了缩小的jQuery。 当我在本地运行我的应用程序并单击/assets/application.js?body=1我只看到清单。 我试图添加到development.rb config.serve_static_assets = false 它没有帮助。 我还清理了多次资产和缓存。 唯一对我有用的是设定 […]

应该Rails uglifier uglify(mangle)函数名吗?

我的.js文件被压缩并且变量被破坏,但函数名称没有在Heroku上被破坏(运行最新的Rails 3.2.8和最新的uglify 1.3.0 gem)。 根据https://github.com/lautis/uglifier#usage,“mangle ”选项默认为true。 以下是我的配置。 来自production.rb: config.assets.compress = true config.assets.js_compressor = :uglifier 我也试过了 config.assets.compress = true config.assets.js_compressor = Uglifier.new(:mangle => true, :toplevel => true, :copyright => true) 但没有明显的区别。 正如一位评论者建议的那样,我确实尝试更改我的.js文件的内容,但没有任何区别。 Heroku上压缩的预编译.js文件的输出示例: show_slideout_notification=function(){jQuery(“.slideout_notification”).slideDown();var e=$(“.slideout_notification .countdown 似乎变量名称被修改,但函数名称不是。 任何想法为什么函数名称没有被破坏? 或者这是不想要的行为,因为从我的Rails / js代码(即javascript onclick事件)调用函数是很困难的。 或者,如果function名称被破坏,那些onclick调用是否也会被重命名为受损名称? 谢谢 :-)

如何使用ember-rails gem为HandlebarsJS模板指定备用目录?

我有一个Rails应用程序,我在前端使用Ember。 我想将与ember相关的文件在目录结构中向下移动一级,但是当我这样做时,模板不再渲染。 在普通的,vanilla,应用程序的工作版本中,我的目录结构是: ./app/ assets/ javascripts application.js ember-app.js routes.js store.js models/ controllers/ routes/ templates/ views/ with:application.js //= require jquery //= require jquery_ujs //= require handlebars //= require ember //= require ember-data //= require_self //= require ember-app App = Ember.Application.create(); 和:ember-app.js //= require ./store //= require_tree ./models //= require_tree ./controllers //= require_tree ./views //= require_tree ./helpers […]

ExecJS咖啡脚本没有显示编译错误的行号(Rails资产管道)

在我的一个Rails应用程序中,ExecJS没有显示coffeescript编译错误的行号。 我的编译错误消息将如下所示: ExecJS::RuntimeError in Referrals#new Showing ~/MyApp/app/views/layouts/application.html.erb where line #6 raised: SyntaxError: unexpected IDENTIFIER (in ~/MyApp/assets/javascripts/utils.js.coffee) 请注意,咖啡脚本源没有行号(第6行用于erb文件)。 在我的另一个应用程序中,我仍然在获取行号,语法错误如下所示: ExecJS::ProgramError in Projects#show Showing ~/OtherApp/app/views/layouts/application.html.erb where line #17 raised: Error: Parse error on line 6: Unexpected ‘STRING’ (in ~/OtherApp/app/assets/javascripts/projects.js.coffee) 所以似乎区别在于ExecJS::ProgramError会给我行号,而ExecJS::RuntimeError则不行。 任何人都知道如何获得行号? 为什么我的应用程序在咖啡资产编译上创建RuntimeErrors,而另一个是给出ProgramErrors? 我检查过Rails,它们似乎匹配。 请注意,如果我修复编译错误,应用程序运行正常(例如,咖啡文件实际上已经编译) – 但是让这些行号指向编译错误是很好的! 编辑我意识到,无论是ExecJS Runtimeerror还是ProgramError似乎并不重要 – 在第一个应用程序中,从来没有给Runtimeerror号,而在第二个应用程序中,始终存在。

我如何在Mailer中使用资产?

我无法在邮件程序中使用任何forms的资产管道,而是使用Mailer本身或视图。 以下生成并清空src图像标记。 空图像标记如下所示: img alt =“Header-general” 以下forms通过模型附加文件并在视图中使用它会附加空图像。 attachments.inline[‘header.jpg’] = ’emails/header-general.png’ … 我确实检查了路径,甚至尝试了多条路径,等等但没有运气。 请帮忙。 在电子邮件中包含图像的任何forms都会有所帮助。 这是生产环境。 Xenium::Application.configure do # Settings specified here will take precedence over those in config/application.rb # Code is not reloaded between requests config.cache_classes = true # Full error reports are disabled and caching is turned on config.consider_all_requests_local = false config.action_controller.perform_caching = true […]

将@ font-face文件集成到rails资产管道中

我正在尝试将设计人员的html和css文件集成到rails应用程序中。 他有大约四个@ font-face文件,这些文件当前链接到application.css文件中。 我已将字体存储在assets / fonts文件夹中,并将该文件夹添加到资产管道中(在config / application.rb中) 我只使用了Google字体,我在application.html.erb文件中包含了google的链接。 我该如何包含这些字体文件? 他们应该(1)保留在application.css文件中,还是(2)在app.html.erb文件中链接到javascript和styesheets? 例如,像这样: