标签: asset-pipeline

Rails 3.1 Asset Pipeline - 为什么我要在SCSS文件中使用Asset Helpers?

我刚刚进入资产管道; 我正在使用SASS/SCSS,但我不明白为什么我应该使用资产助手.

例如,如果我有一些CSS/SCSS而不使用资产助手:

background-image: url('rails.png');
Run Code Online (Sandbox Code Playgroud)

这样可以正常工作,因为我的.SCSS文件和图像都在资源目录中并可以访问.

这样做有什么意义?:

background-image: asset-url("rails.png", image);
Run Code Online (Sandbox Code Playgroud)

我知道它会在网址中添加"/ assets /",但如果标准的CSS方式有效,我为什么要使用资产助手呢?

我想我错过了什么.它与部署到生产有关吗?

assets ruby-on-rails sass ruby-on-rails-3 asset-pipeline

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

Rails:是否可以从资产文件中获取控制器和操作名称?

我想在我的资产管道中做这样的事情:

的application.js

//= require jquery
//= require jquery_ujs
//= require_tree ./includes
//= require global
<% if File.exists? "#{Rails.root}/assets/javascripts/#{params[:controller]}.js" %>
    //= require <%= params[:controller] %>
<% end %>
<% if File.exists? "#{Rails.root}/assets/javascripts/#{params[:controller]}/#{params[:action]}.js" %>
    //= require <%= params[:controller] %>/<%= params[:action] %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

现在这不起作用,因为资产文件无法访问params变量.现在有没有办法从资产中获取当前控制器动作名称?

或者是整个项目的预编译资产文件,这是不可能的?

ruby-on-rails asset-pipeline

1
推荐指数
2
解决办法
2641
查看次数

Ruby on rails:资产管道中的javascript

我是一个完整的菜鸟,我试图了解如何在Rails中使用javascript和资产管道.例如,我在哪里放一个简单的$(document).ready来在特定视图中执行.我已经完成了将代码放在视图中,但我认为这不是最好的方法.补充阅读也将不胜感激,谢谢.

javascript ruby-on-rails asset-pipeline

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

字体glyphicons不使用bootstrap 3和rails 4

我无法让glyphicons与bootstrap 3和rails一起使用.我已经在互联网上找到了灵感,没有找到任何帮助.在我的bootstrap.css文件中,我有:

@font-face {
  font-family: 'Glyphicons Halflings';

  src: url('/assets/glyphicons-halflings-regular.eot');
  src: url('/assets/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}
Run Code Online (Sandbox Code Playgroud)

在application.rb中,我有:

config.assets.enabled = true  
config.assets.paths << "#{Rails.root}/app/assets/fonts" 
config.assets.precompile += %w( .svg .eot .woff .ttf )
Run Code Online (Sandbox Code Playgroud)

我已经尝试过跑:

rake资产:预编译RAILS_ENV =开发

在application.js我有:

//= require jquery
//= require jquery_ujs
//= require_tree .
//= require bootstrap
Run Code Online (Sandbox Code Playgroud)

在application.css我有:

 *= require_self
 *= require_tree .
 *= require bootstrap
 */
Run Code Online (Sandbox Code Playgroud)

我的所有字体都存储在资源/字体中

我已经看过以下内容,但没有一个有效:

Bootstrap 3 + Rails 4 - 某些Glyphicons不工作

如何将自定义字体添加到Rails应用程序?

我怎样才能解决这个问题?

ruby-on-rails asset-pipeline twitter-bootstrap twitter-bootstrap-rails ruby-on-rails-4

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

rake assets:带有NoMethod的预编译错误:未定义的方法`tr'代表nil:NilClass

我有一个简单的rails应用程序,我试图通过Capistrano回复.该应用程序在开发中工作正常但在部署时失败.我将其追溯到资产:预编译步骤,在本地计算机上也失败了.我已经看到了其他类似问题的其他帖子,但没有任何真正指向我正确的方向.

我不够强大,无法确定下一步的位置,所以任何指针都会受到赞赏.

Solara:myapp dan$ rake assets:precompile --trace
** Invoke assets:precompile (first_time)
** Invoke assets:environment (first_time)
** Execute assets:environment
** Invoke environment (first_time)
** Execute environment
rake aborted!
NoMethodError: undefined method `tr' for nil:NilClass
/Users/dan/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.2.4/lib/active_record/connection_adapters/connection_specification.rb:37:in `initialize'
/Users/dan/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.2.4/lib/active_record/connection_adapters/connection_specification.rb:270:in `new'
/Users/dan/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.2.4/lib/active_record/connection_adapters/connection_specification.rb:270:in `resolve_url_connection'
/Users/dan/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.2.4/lib/active_record/connection_adapters/connection_specification.rb:258:in `resolve_hash_connection'
/Users/dan/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.2.4/lib/active_record/connection_adapters/connection_specification.rb:215:in `resolve_connection'
/Users/dan/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.2.4/lib/active_record/connection_adapters/connection_specification.rb:139:in `resolve'
/Users/dan/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.2.4/lib/active_record/connection_adapters/connection_specification.rb:151:in `block in resolve_all'
/Users/dan/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.2.4/lib/active_record/connection_adapters/connection_specification.rb:150:in `each'
/Users/dan/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.2.4/lib/active_record/connection_adapters/connection_specification.rb:150:in `resolve_all'
/Users/dan/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.2.4/lib/active_record/connection_handling.rb:69:in `resolve'
/Users/dan/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.2.4/lib/active_record/core.rb:46:in `configurations='
/Users/dan/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.2.4/lib/active_record/railtie.rb:117:in `block (2 levels) in <class:Railtie>'
/Users/dan/.rvm/gems/ruby-2.0.0-p247/gems/activesupport-4.2.4/lib/active_support/lazy_load_hooks.rb:38:in `instance_eval'
/Users/dan/.rvm/gems/ruby-2.0.0-p247/gems/activesupport-4.2.4/lib/active_support/lazy_load_hooks.rb:38:in `execute_hook'
/Users/dan/.rvm/gems/ruby-2.0.0-p247/gems/activesupport-4.2.4/lib/active_support/lazy_load_hooks.rb:28:in `block in on_load'
/Users/dan/.rvm/gems/ruby-2.0.0-p247/gems/activesupport-4.2.4/lib/active_support/lazy_load_hooks.rb:27:in `each'
/Users/dan/.rvm/gems/ruby-2.0.0-p247/gems/activesupport-4.2.4/lib/active_support/lazy_load_hooks.rb:27:in `on_load'
/Users/dan/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.2.4/lib/active_record/railtie.rb:116:in `block in <class:Railtie>'
/Users/dan/.rvm/gems/ruby-2.0.0-p247/gems/railties-4.2.4/lib/rails/initializable.rb:30:in …
Run Code Online (Sandbox Code Playgroud)

capistrano ruby-on-rails asset-pipeline

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

主动管理仪表板轨道中的图表集成

我的仪表板

section "Graph", do
div do
    render 'graph'
    end
end
Run Code Online (Sandbox Code Playgroud)

_graph.html.erb

<script type="text/javascript">
$(function(){
    new Highcharts.Chart({
        chart: {
            renderTo: "charts"
        },
        title: {
            text: "Orders"
        },
        xAxis: {
            title: {
                text: "X axis"
            }
        },
        yAxis: {
            title: {
                text: "Y axis"
            }
        },
        series: [{
            data: [1,3,5,7]
        }]
    });
});
Run Code Online (Sandbox Code Playgroud)

我将 _graph.html.erb 放置在哪个文件夹中,以便可以加载它。之后JavaScript可以正常工作吗?

javascript jquery charts ruby-on-rails asset-pipeline

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

使用Passenger/Capistrano部署到Nginx服务器后未显示的图像

嗨我正在将我的第一个Rails应用程序部署到Ubuntu 16服务器上,Capistrano除了图像没有在生产环境中显示外,一切顺利.

在生产服务器上,映像位于此路径中: /myapp/current/public/assets

但是,如果我在浏览器中看到这个,我的破碎图像链接给了我这个(见图片),这是标题图像的断开链接.

破碎的图像

奇怪的是,有一个.svg文件在/myapp/current/public/assets浏览器中完美显示,下图是显示的路径 svg文件

这是我的 Capfile

# Load DSL and set up stages
 require "capistrano/setup"

# Include default deployment tasks
require "capistrano/deploy"


set :rbenv_type, :user # or :system, depends on your rbenv setup
set :rbenv_ruby, '2.3.1'


require 'capistrano/rbenv'

require 'capistrano/bundler'
require 'capistrano/rails'


# Load custom tasks from `lib/capistrano/tasks` if you have any defined
Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r }
Run Code Online (Sandbox Code Playgroud)

这是 config/deploy.rb

# config valid only for current version of Capistrano
lock '3.6.1' …
Run Code Online (Sandbox Code Playgroud)

capistrano ruby-on-rails passenger nginx asset-pipeline

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

无法在 Rails 应用程序上以开发模式加载资源:ERR_CONNECTION_REFUSED

我刚刚开始开发另一个开发人员开发的新 Rails 应用程序,我必须承担该项目。当我尝试在开发模式下本地运行应用程序时,我在设置级别遇到了困难。该应用程序无法加载资源(css、js、图像)。我得到ERR_CONNECTION_REFUSED每个资产文件: 在此输入图像描述

我必须补充一点,该项目正在使用

gem 'asset_sync', '~> 1.0.0'
Run Code Online (Sandbox Code Playgroud)

它用于同步 Rails 和 S3 之间的资产,但我认为它不应该在开发模式中发挥任何作用。

您知道为什么应用程序在开发模式下不加载资源吗?

assets ruby-on-rails asset-pipeline

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

为什么我有多个 &lt;script&gt; 标签而不是 Rails 应用程序中的一个?

当我在 chrome 上检查我的索引页时,head 标签有多个标签:

<script src="/assets/components/questions/question_likes.self-6aaf2ce97062977185e0d5f9fc31643ca8fd012bfb53c12752977afdab1260be.js?body=1" data-turbolinks-track="true"></script>
<script src="/assets/components.self-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.js?body=1" data-turbolinks-track="true"></script>
<script src="/assets/moment.self-0da3eb4ebf8fb8c3113d89afb90e5b7a87760d21b5b39a405a51fe05c8e40fd8.js?body=1" data-turbolinks-track="true"></script>
<script src="/assets/jquery-fileupload/vendor/jquery.ui.widget.self-92c37a41e67e528eecf100716907331b4b9aa4f546bf75ef2e0529c8c03a562d.js?body=1" data-turbolinks-track="true"></script>
<script src="/assets/jquery-fileupload/jquery.iframe-transport.self-e461f7ff2a60ee89459106a6f3e349cf79b7f56066b3c8cbc73389b30e1eb592.js?body=1" data-turbolinks-track="true"></script>
<script src="/assets/jquery-fileupload/jquery.fileupload.self-79c952fc273d5a8955a6093f4f489dcd509c5a2cefb2b9a049d3cdb2710ec8d3.js?body=1" data-turbolinks-track="true"></script>
<script src="/assets/jquery-fileupload/basic.self-6a3cf5192354f71615ac51034b3e97c20eda99643fcaf5bbe6d41ad59bd12167.js?body=1" data-turbolinks-track="true"></script>
<script src="/assets/jquery-fileupload/vendor/tmpl.self-c2108a63ad9ae9ab4a723bcf0104f6a92a63eb917331ff69fad6f02fe7219488.js?body=1" data-turbolinks-track="true"></script>
<script src="/assets/s3_direct_upload.self-a71af1e40427c6623d982df253581eb58013b84d84f45bcef7d0352ad4e82534.js?body=1" data-turbolinks-track="true"></script>
<script src="/assets/application.self-c88a422e522d3887e663830741eb19213b74b0bcee8413fffde6decde58266aa.js?body=1" data-turbolinks-track="true"></script>
Run Code Online (Sandbox Code Playgroud)

我认为 rails 将所有 js 文件连接成一个,为什么会发生这种情况?我正在使用react,没有turbolinks。

javascript ruby-on-rails asset-pipeline

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

即使在重新启动服务器后,Rails 5 开发 application.js 文件也不会更新

application.js 文件中的更改没有反映,因为每次 rails 从 public/assets 文件夹中选择文件。
这是我的application.js文件

//= require jquery
//= require jquery_ujs
//= require ./inner/jquery.min.js
//= require ./inner/sidebar-nav.min.js
//= require ./inner/jquery.slimscroll.js
//= require ./inner/waves.js
//= require ./inner/mask.js
//= require ./inner/footable-init.js
//= require ./inner/jquery.waypoints.js
//= require ./inner/jquery.counterup.min.js
//= require ./inner/raphael-min.js
//= require ./inner/morris.js
//= require ./inner/morris-data.js
//= require ./inner/owl.carousel.min.js
//= require ./inner/owl.custom.js

//= require ./inner/custom.min.js
//= require ./inner/dashboard1.js
Run Code Online (Sandbox Code Playgroud)

我试过:

rake assets:precompile
Run Code Online (Sandbox Code Playgroud)

我也在development.rb 中尝试过

config.serve_static_assets = false
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails asset-pipeline ruby-on-rails-5

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