标签: asset-pipeline

Rails 3:资产管道+许多布局

我有一个带有rails 3.1的巨大项目(没有资产管道).这个项目有很多不同的布局,例如:

  • 应用
  • 安慰

等每个布局有一个巨大的JS和CSS(附上他们,我们使用的名单javascript_include_tagstylesheet_link_tag).是否可以启用资产管道,因此它将包含不同布局的不同js/css文件,它将为生产中的每个布局生成不同的application.js和application.css?

layout ruby-on-rails ruby-on-rails-3.1 asset-pipeline

6
推荐指数
1
解决办法
1177
查看次数

如何使用Asset Pipeline从非标准目录传递字体

我试图将Fontawesome包含在Rails 4应用程序中,但资产并没有进入资产管道.但是,字体并没有在生产中出现,我无法弄清楚原因.

文件结构组织

我的所有资产都存储在这里,/assets/components 以便Fontawesome出现在:( /assets/components/font-awesome它们位于不同的目录中,因为我正在使用Bower).

CSS清单文件:

# application.css.scss
/* ...
*= require bootstrap/dist/css/bootstrap
*= require font-awesome/css/font-awesome
*= require_self
*= require_tree .
*/
Run Code Online (Sandbox Code Playgroud)

资产管道设置为预编译字体

# Version of your assets, change this if you want to expire all your assets
config.assets.version = '1.0'
config.assets.paths << Rails.root.join('vendor', 'assets', 'components')

# Adding Webfonts to the Asset Pipeline
config.assets.precompile << Proc.new { |path|
  if path =~ /\.(eot|svg|ttf|woff|otf)\z/
    true
  end
}
Run Code Online (Sandbox Code Playgroud)

我添加了预编译指令,以便根据此问题对所有字体进行预编译

包含Heroku 12 Factor宝石

#gemfile
group :production do
  gem "rails_12factor" …
Run Code Online (Sandbox Code Playgroud)

heroku asset-pipeline ruby-on-rails-4 font-awesome-4

6
推荐指数
1
解决办法
4046
查看次数

Grails 2.4包括jquery-ui

我的grails应用程序使用jquery-ui和twitter bootstrap插件.我使用默认的application.js结构.然后我添加以下行来包含jquery-ui和bootstrap.js:

...
//= require jquery
//= require jquery-ui
//= require bootstrap
...
Run Code Online (Sandbox Code Playgroud)

正确加载bootstrap.js,但不包括jquery-ui.js.

grails jquery-ui asset-pipeline

6
推荐指数
2
解决办法
4609
查看次数

Rails:字体真棒图标未使用 font-awesome-rails gem 显示

我似乎找不到适合我的答案。

图标显示为一个框: ?

我正在使用:

font-awesome-rails (4.6.2.0)
rails (4.2.3)
Run Code Online (Sandbox Code Playgroud)

我使用以下命令在 application.scss 文件中导入了 font-awesome-rails:

@import "font-awesome";
Run Code Online (Sandbox Code Playgroud)

这是我为视图编写的内容:

<i class="quote-left fa fa-quote-left"></i>
Run Code Online (Sandbox Code Playgroud)

我试过在引导之前和之后包括它。

我还尝试将字体文件夹手动添加到 application.rb 中的管道

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

清除 tmp 文件夹似乎也没有做任何事情。

我花了太多时间在这上面,请帮忙:(

ruby-on-rails asset-pipeline font-awesome

6
推荐指数
1
解决办法
6414
查看次数

ExecJS::RuntimeError: SyntaxError: Unexpected token operator

RAILS_ENV=production rake assets:precompile --trace
Digest::Digest is deprecated; use Digest
Digest::Digest is deprecated; use Digest
** Invoke assets:precompile (first_time)
** Invoke assets:environment (first_time)
** Execute assets:environment
** Invoke environment (first_time)
** Execute environment
** Execute assets:precompile
rake aborted!
ExecJS::RuntimeError: SyntaxError: Unexpected token operator «=», expected punc «,» (line: 159, col: 25, pos: 5132)

Error
    at new JS_Parse_Error (/tmp/execjs20161124-23752-1wuk17bjs:3623:11948)
    at js_error (/tmp/execjs20161124-23752-1wuk17bjs:3623:12167)
    at croak (/tmp/execjs20161124-23752-1wuk17bjs:3623:22038)
    at token_error (/tmp/execjs20161124-23752-1wuk17bjs:3623:22175)
    at expect_token (/tmp/execjs20161124-23752-1wuk17bjs:3623:22411)
    at expect (/tmp/execjs20161124-23752-1wuk17bjs:3623:22562)
    at ctor.argnames (/tmp/execjs20161124-23752-1wuk17bjs:3623:27486)
    at function_ (/tmp/execjs20161124-23752-1wuk17bjs:3623:27550)
    at /tmp/execjs20161124-23752-1wuk17bjs:3623:24469 …
Run Code Online (Sandbox Code Playgroud)

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

6
推荐指数
1
解决办法
3785
查看次数

Rails - 使用image_tag时资产不存在于资产管道中

目标:将我的rails应用程序与生产中的资产中的静态图像一起使用environemt

脚步:

  1. 我将rails应用程序转到了生产环境.
  2. 预编译资产 RAILS_ENV=production rails assets:precompile
  3. RAILS_SERVE_STATIC_FILESenvironemt变量设置true为启用公共文件服务器(在production.rb-config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
  4. 添加的行config.serve_static_assets = true/config/application.rb

通过此设置,我启动了服务器.

我有一些静态图像,/app/assets/images/其中带有指纹文件名的预编译版本现在/public/assets.例子:

  • aussen-d2fb0029a12281121a1752c599e715a8e2b3db17f1e8e18248a79a7b1ca63b91.jpg
  • hintergrund-ca80e1ae5a697c86898f3a7e107694a76dc12e54320b8ac80c58eecbffe0414a.png

到目前为止这么棒.

当我background-image: url(<%= asset_path('hintergrund') %>);application.css.erb其中使用它成功加载预编译的背景图像/public/assets.

问题:我无法在视图中使用image_tags访问预编译的图像!例:

<%= image_tag("aussen") %>
Run Code Online (Sandbox Code Playgroud)

错误日志:

I, [2018-03-23T00:46:29.133381 #9289]  INFO -- : [f36ff000-6261-4c2c-bfcc-4a2f80cae682] Started GET "/" for 46.142.136.81 at 2018-03-23 00:46:29 +0100
I, [2018-03-23T00:46:29.134466 #9289]  INFO -- : [f36ff000-6261-4c2c-bfcc-4a2f80cae682] Processing by HomeController#index as HTML
I, [2018-03-23T00:46:29.136604 #9289]  INFO …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails production-environment asset-pipeline

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

如何将供应商资产导入 webpacker?

我在 vendor/stylesheets 和 vendor/javascript 目录中添加了一些 javascript 和 css 库。我无法在我的 app/javascript/packs/application.js 中导入它们。我使用 webpacker 作为我的资产管道。

ruby-on-rails asset-pipeline ruby-on-rails-5 webpacker ruby-on-rails-5.2

6
推荐指数
0
解决办法
589
查看次数

Rails 7 css 资产无法在生产中运行,需要帮助了解资产管道在没有 webpacker 的情况下如何工作

尝试使用 Rails 7、Tailwind 和 PostCSS。

我在 asset/stylesheets 中有一些样式表,我通过同一文件夹中名为 import.css 的文件导入它们。

//imports.css
@import stylesheet1.css;
@import stylesheet2.css;
Run Code Online (Sandbox Code Playgroud)

然后,我使用以下内容将该文件导入到 application.html.erb 中:

//application.html.erb
<%= stylesheet_link_tag "application", "imports", "data-turbo-track": "reload" %>
Run Code Online (Sandbox Code Playgroud)

在开发过程中,一切都按预期运行良好,与顺风配合得很好。由于 postcss,导入工作正常。然而,在生产环境(nginx、puma)中,它尝试提取这些文件并失败。对于我拥有的每个样式表,我在浏览器控制台中看到:

获取https://mywebsite.com/assets/style/stylesheet1.css net::ERR_ABORTED 404(未找到)

我正在尝试将我的大脑从 Rails 6 中的 webpacker 转移过来,不确定我需要在这里做什么......一些想法:

  1. 我是否需要进行设置,以便将样式表复制到 public/assets 文件夹或其他文件夹中?Production.rb 中是否有设置可以做到这一点?(我觉得默认情况下 Rails 应该已经这样做了)

  2. 我需要在部署时手动预编译这些资产吗?

如有帮助,将不胜感激。谢谢!

ruby ruby-on-rails asset-pipeline ruby-on-rails-7

6
推荐指数
1
解决办法
2860
查看次数

Rails 3.1 Javascript的资产管道

好的,我已经阅读了很多关于新资产管道Rails 3.1的信息,我找不到对我的怀疑的正确答案.

我根据我正在渲染的视图#动作按需加载我的.js文件.我这样做是为了防止不正确的绑定并加载小的.js文件.

candidate_opportunities#指数

$(".sortable_drag_n_drop").sortable({
    update: function(event, ui) {
        $.post('/candidate_opportunities/sort', $(this).sortable('serialize'));
    },
    handle: 'span'
});
Run Code Online (Sandbox Code Playgroud)

candidate_companies#指数

$(".sortable_drag_n_drop").sortable({
    update: function(event, ui) {
        $.post('/candidate_companies/sort', $(this).sortable('serialize'));
    },
    handle: 'span'
});
$(".sortable_drag_n_drop").disableSelection();
Run Code Online (Sandbox Code Playgroud)

现在最好的解决方案是什么?

  • 我应该更改我的绑定并让Sprockets使用//= require_tree .?编译我的所有.js文件?
  • 或者我应该根据我的观点尝试加载我的 .js,所以我最终没有一个巨大的 application.js

javascript view ruby-on-rails-3 sprockets asset-pipeline

5
推荐指数
1
解决办法
2214
查看次数

编译资产时"堆栈级别太深"

运行后brew upgrade,或其他更新我的宝石/红宝石版本的东西,我的rake assets:precompile任务不再有效.

我收到此错误:

rake aborted!
stack level too deep
  (in /Users/Jordan/Development/reejay/rails/reejay/app/assets/stylesheets/blog_player.css.scss)
/Users/Jordan/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2.2/lib/rake/task.rb:162
Tasks: TOP => assets:precompile:primary
rake aborted!
Command failed with status (1): [/usr/local/Cellar/ruby/1.9.3-p0/bin/ruby /...]
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/1.9.1/rake/file_utils.rb:53:in `block in create_shell_runner'
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/1.9.1/rake/file_utils.rb:45:in `call'
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/1.9.1/rake/file_utils.rb:45:in `sh'
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/1.9.1/rake/file_utils_ext.rb:39:in `sh'
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/1.9.1/rake/file_utils.rb:80:in `ruby'
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/1.9.1/rake/file_utils_ext.rb:39:in `ruby'
/Users/Jordan/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.1.1/lib/sprockets/assets.rake:9:in `ruby_rake_task'
/Users/Jordan/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.1.1/lib/sprockets/assets.rake:17:in `invoke_or_reboot_rake_task'
/Users/Jordan/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.1.1/lib/sprockets/assets.rake:25:in `block (2 levels) in <top (required)>'
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/1.9.1/rake/task.rb:205:in `call'
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/1.9.1/rake/task.rb:205:in `block in execute'
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/1.9.1/rake/task.rb:200:in `each'
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/1.9.1/rake/task.rb:200:in `execute'
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/1.9.1/rake/task.rb:158:in `block in invoke_with_call_chain'
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/1.9.1/rake/task.rb:151:in `invoke_with_call_chain'
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/1.9.1/rake/task.rb:144:in `invoke'
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/1.9.1/rake/application.rb:116:in `invoke_task'
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/1.9.1/rake/application.rb:94:in `block (2 …
Run Code Online (Sandbox Code Playgroud)

ruby gem ruby-on-rails sprockets asset-pipeline

5
推荐指数
1
解决办法
2603
查看次数