标签: asset-pipeline

Windows上的ExecJS :: RuntimeError试图遵循rubytutorial

更新: 科林建议删除行// = require_tree.已经解决了这个问题.

我已经浪费了2天时间试图跟踪每个建议并解决我的问题.我试图按照Windows机器上的http://ruby.railstutorial.org书籍,并且不能为我的生活经历以下讨厌的错误.

ExecJS::RuntimeError in Static_pages#home

Showing C:/Users/.../bootcamp-sample-app/app/views/layouts/application.html.erb where line #6 raised:

["ok","(function() {\n\n\n\n}).call(this);\n"]
(in C:/Users/.../bootcamp-sample-app/app/assets/javascripts/sessions.js.coffee)
Extracted source (around line #6):

3: <head>
4:   <title><%= full_title(yield(:title)) %></title>
5:   <%= stylesheet_link_tag    "application", media: "all" %>
6:   <%= javascript_include_tag "application" %>
7:   <%= csrf_meta_tags %>
8:   <%= render 'layouts/shim' %>
9: </head>
Rails.root: C:/Users/.../bootcamp-sample-app

Application Trace | Framework Trace | Full Trace
app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb___487732698_30422172'
Request
Run Code Online (Sandbox Code Playgroud)

我已经尝试了所有的建议,包括用msi安装nodejs,使用execjs 1.3.0和其他我甚至不记得的东西.这是gem文件

source 'https://rubygems.org'

gem 'rails', '3.2.8'
gem 'bootstrap-sass', '2.0.0'
gem …
Run Code Online (Sandbox Code Playgroud)

javascript ruby windows ruby-on-rails asset-pipeline

101
推荐指数
4
解决办法
7万
查看次数

为什么Rails4放弃了对Gemfile中"assets"组的支持

在Rails 3中,专门用于在资产管道中生成资产的gem被正确放置在assetsGemfile 的组中:

...

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails'
  gem 'coffee-rails'
  gem 'uglifier'

  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  # gem 'therubyracer', :platforms => :ruby
end
Run Code Online (Sandbox Code Playgroud)

现在,根据(仍在进行中)升级文档:

Rails 4.0从Gemfile中删除了资产组.升级时,您需要从Gemfile中删除该行.

果然,使用RC1创建一个新项目会生成一个Gemfile,其默认包含在任何组之外的资产相关gem:

source 'https://rubygems.org'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.0.0.rc1'

# Use sqlite3 as the database for Active Record
gem 'sqlite3'

# Use SCSS for stylesheets …
Run Code Online (Sandbox Code Playgroud)

asset-pipeline ruby-on-rails-4

96
推荐指数
2
解决办法
2万
查看次数

Rails 4 image-path,image-url和asset-url不再适用于SCSS文件

我们是否应该使用image-urlRails 4中的其他内容和其他内容?它们返回的值不同,似乎没有意义.如果我有logo.png,/app/assets/images/logo.png我会做以下,这就是我得到的:

image-url("logo.png") -> url("/images/logo.png") #obviously doesn't work
image-path("logo.png") -> "/images/logo.png"
asset-url("logo.png") -> url("/logo.png")
Run Code Online (Sandbox Code Playgroud)

当然,这些都不起作用,因为它们至少需要/assets在前面.

更新:实际上,我刚刚注意到,如何在Rails 4中访问图像?我有一张图片/app/assets/images/logo.png.但是,如果我转到以下任何网址,我仍然看不到我的图片:

http://localhost:3000/assets/logo.png
http://localhost:3000/assets/images/logo.png
http://localhost:3000/logo.png
http://localhost:3000/images/logo.png
Run Code Online (Sandbox Code Playgroud)

更新2:我能提出的唯一方法logo.png是将其移动到/app/assets/stylesheets目录然后拉起:

http://localhost:3000/assets/logo.png
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails asset-pipeline ruby-on-rails-4

96
推荐指数
6
解决办法
13万
查看次数

Rails中适当的SCSS资产结构

所以,我有一个app/assets/stylesheets/看起来像这样的目录结构:

   |-dialogs
   |-mixins
   |---buttons
   |---gradients
   |---vendor_support
   |---widgets
   |-pages
   |-structure
   |-ui_elements
Run Code Online (Sandbox Code Playgroud)

在每个目录中,有多个sass partials(通常是*.css.scss,但是一个或两个*.css.scss.erb).

我可能会假设很多,但rails应该自动编译那些目录中的所有文件,因为*= require_tree .在application.css中,对吧?

我最近尝试通过删除所有颜色变量并将它们放在根app/assets/stylesheets文件夹(_colors.css.scss)中的文件中来重构这些文件.然后我在app/assets/stylesheets名为master.css.scss 的根文件夹中创建了一个文件,如下所示:

// Color Palette 
@import "colors";

// Mixins
@import "mixins/buttons/standard_button";
@import "mixins/gradients/table_header_fade";
@import "mixins/vendor_support/rounded_corners";
@import "mixins/vendor_support/rounded_corners_top";
@import "mixins/vendor_support/box_shadow";
@import "mixins/vendor_support/opacity";
Run Code Online (Sandbox Code Playgroud)

我真的不明白rails如何处理资产编译的顺序,但它显然不利于我.看来没有一个文件意识到他们有任何变量或mixins被导入,所以它抛出错误,我无法编译.

Undefined variable: "$dialog_divider_color".
  (in /home/blah/app/assets/stylesheets/dialogs/dialog.css.scss.erb)

Undefined mixin 'rounded_corners'.
  (in /home/blah/app/assets/stylesheets/widgets.css.scss)
Run Code Online (Sandbox Code Playgroud)

该变量$dialog_divider_color在_colors.css.scss中明确定义,并_master.css.scss导入颜色和我的所有mixins.但显然铁路没有获得那份备忘录.

有什么方法可以解决这些错误,还是我需要将所有变量定义放回每个单独的文件,以及所有mixin导入?

不幸的是,这家伙似乎并不认为这是可能的,但我希望他错了.任何想法都非常感谢.

css ruby-on-rails sass asset-pipeline

82
推荐指数
3
解决办法
5万
查看次数

在Rails 3.1中添加新的资产路径

有谁知道如何在Rails 3.1中向资产管道添加另一个文件夹?

我想以app/assets/fonts同样的方式app/assets/images服务.


更新:5-7-2013

只是为将来发现此问题以明确添加资产路径的人添加一些说明,在application.rb文件中:

config.assets.paths << "#{Rails.root}/app/assets/fonts"
Run Code Online (Sandbox Code Playgroud)

但是,由于上面的路径app/assets不在你明确添加它,你只需要重新启动rails应用程序,这样Sprockets就可以把它拿起来.

你必须明确地添加是外面的路径app/assets,lib/assets或者vendor/assets,只是记得,虽然链轮拿起新的文件夹是存在,当你的应用程序中加载,在我的经验,它不拿起资产路径新的文件夹,而不重启.

ruby-on-rails path ruby-on-rails-3.1 asset-pipeline

78
推荐指数
3
解决办法
4万
查看次数

Heroku不会在Rails 4中的资产管道下编译文件

在Rails 4和Ruby 2.0中使用资产管道的本地机器上一切顺利.但是当部署到heroku时,它显示:

-----> Preparing app for Rails asset pipeline
   Running: rake assets:precompile
   I, [2013-03-12T03:28:29.908234 #912]  INFO -- : Writing /tmp/build_1n6yi8lwna3sj/public/assets/rails-2ee5a98f26fbf8c6c461127da73c47eb.png
   I, [2013-03-12T03:28:29.914096 #912]  INFO -- : Writing /tmp/build_1n6yi8lwna3sj/public/assets/trash-3c3c2861eca3747315d712bcfc182902.png
   I, [2013-03-12T03:28:33.963234 #912]  INFO -- : Writing /tmp/build_1n6yi8lwna3sj/public/assets/application-bf2525bd32aa2a7068dbcfaa591b3874.js
   I, [2013-03-12T03:28:40.362850 #912]  INFO -- : Writing /tmp/build_1n6yi8lwna3sj/public/assets/application-13374a65f29a3b4cea6f8da2816ce7ff.css
   Asset precompilation completed (14.36s)
Run Code Online (Sandbox Code Playgroud)

Heroku似乎编译文件,但把它放在/ tmp没有任何错误.我的问题是:

  1. 为什么Heroku将资源文件编译为/ tmp?
  2. 我的最后一个解决方案是运行RAILS_ENV =生产包exec rake资产:在本地预编译,但这在public/assets中生成了manifest-xxxxxx.json,而不是manifest.yml,因此heroku不会检测JSON清单文件.我通过从json文件手动创建了一个yml来解决它,并且heroku变得很开心.heroku的方法已经过时了吗?

heroku asset-pipeline ruby-on-rails-4

77
推荐指数
6
解决办法
4万
查看次数

Rails 3.1资产管道:如何加载特定于控制器的脚本?

如果我在Rails 3.1中生成一个新的控制器,也会自动添加一个带有控制器名称的javascript文件.首先,我认为这个javascript文件只会在调用相关控制器时使用.

默认情况下//= require_tree .,application.js-file中有指令,包括树上的每个javascript文件.

我怎么才能加载控制器特定的脚本?

assets ruby-on-rails ruby-on-rails-3.1 sprockets asset-pipeline

76
推荐指数
4
解决办法
4万
查看次数

在javascript资产中使用Rails帮助器方法

有没有办法使用Rails助手方法,更具体地说,是javascript资产文件中的路径助手方法.这个文件foo.js.coffee.erb

$('#bar').val("<%= create_post_path %>")
Run Code Online (Sandbox Code Playgroud)

如果我能从erubis那里得到,我会喜欢它

$('#bar').val("path/to/create")
Run Code Online (Sandbox Code Playgroud)

javascript ruby-on-rails erubis ruby-on-rails-3 asset-pipeline

69
推荐指数
5
解决办法
3万
查看次数

如何在Rails 4中使用字体

我有一个Rails 4应用程序,我正在尝试使用自定义字体.

我已经关注了很多关于这方面的教程,不知何故它只是不适用于我的应用程序.

我正在使用application.css.less并有以下声明:

@font-face {
    font-family: 'HDVPeace';
    src: font-url('HDV_Peace.eot');
    src: font-url('HDV_Peace.eot?iefix') format('eot'),
        font-url('HDV_Peace.woff') format('woff'),
        font-url('HDV_Peace.ttf') format('truetype'),
        font-url('HDV_Peace.svg#webfont') format('svg');
}
Run Code Online (Sandbox Code Playgroud)

注意:我尝试过使用 url() 而不是 font-url() .前者在控制台上生成404错误,后者似乎根本不做任何事情.在资源下的chrome dev工具中,字体文件不会出现在 文件夹assets 或任何位置

在我的config/application.rb身上:

config.assets.paths << Rails.root.join('app', 'assets', 'fonts')
Run Code Online (Sandbox Code Playgroud)

在我config/environments/development.rbconfig/environments/production.rb我都有:

config.assets.paths << Rails.root.join('app', 'assets', 'fonts')
config.assets.precompile += %w( .svg .eot .woff .ttf)
Run Code Online (Sandbox Code Playgroud)

我的字体文件位于app/assets/fonts以下文件夹中,并且不包含在...

我错过了什么?

更新:

文件夹结构

app
 |----assets
        |----fonts
               |----HDV_Peace.eot
               |----HDV_Peace.svg
               |----HDV_Peace.ttf
               |----HDV_Peace.woff
Run Code Online (Sandbox Code Playgroud)

fonts asset-pipeline ruby-on-rails-4

63
推荐指数
6
解决办法
6万
查看次数

如何加快Rails Asset Pipeline预编译过程?

有什么方法可以加快Rails Asset Pipeline预编译过程?

ruby-on-rails asset-pipeline

62
推荐指数
2
解决办法
2万
查看次数