标签: asset-pipeline

不要在开发模式下在Rails 3.1中记录资产请求

可能重复:
如何在Rails 3.1中禁用资产管道(链轮)消息的记录?

自启用资产管道以来,我的开发日志中包含以下内容:

Started GET "/assets/icons/close_32.png" for 127.0.0.1 at 2011-09-19 11:05:39 +0100
Started GET "/assets/vendor/colorbox/controls.png" for 127.0.0.1 at 2011-09-19 11:05:39 +0100
Served asset /icons/close_32.png - 304 Not Modified (0ms)
Served asset /vendor/colorbox/controls.png - 304 Not Modified (0ms)
Run Code Online (Sandbox Code Playgroud)

这意味着在日志中获取实际请求需要大量滚动.我很少(如果有的话)关心我的日志中的这些资产请求,那么有没有办法禁用资产请求的日志记录?

logging ruby-on-rails-3.1 asset-pipeline

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

Ruby on Rails:在Home#index中,application.js文件,Sprockets :: FileNotFound出错

http://0.0.0.0:3000/

Sprockets::FileNotFound in Home#index

Showing /home/user1/rorblog/app/views/layouts/application.html.erb where line #6 raised:

couldn't find file 'jquery'
  (in /home/user1/rorblog/app/assets/javascripts/application.js:7)

Extracted source (around line #6):

3: <head>
4:   <title>Rorblog</title>
5:   <%= stylesheet_link_tag    "application" %>
6:   <%= javascript_include_tag "application" %>
7:   <%= csrf_meta_tags %>
8: </head>
9: <body>
Run Code Online (Sandbox Code Playgroud)

但看起来所有文件都在那里.

application.html.erb =>

<!DOCTYPE html>
<html>
<head>
  <title>Rorblog</title>
  <%= stylesheet_link_tag    "application" %>
  <%= javascript_include_tag "application" %>
  <%= csrf_meta_tags %>
</head>
<body>
<div id="container">

    <div id="header">

        <ul class="hmenu">
            <li>
                <%= link_to('Home', home_index_path ) %>
            </li>
            <% if user_signed_in? …
Run Code Online (Sandbox Code Playgroud)

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

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

如何在Rails 3.1中访问单个css文件?

我目前正在使用Rails 3.1.我只需要使用一个css文件,但问题是当我添加时

<link href="http://mydomain.net/assets/some.css"></link>
Run Code Online (Sandbox Code Playgroud)

它不存在.我需要从该特定的css文件中获取css文件,并且不应该加载其他css文件.

我如何在Rails 3.1中做到这一点?

更新:

将其添加到production.rb:

config.assets.precompile += ['some.css']
Run Code Online (Sandbox Code Playgroud)

导致以下错误:

 ** [out :: domain.net] rake aborted!
 ** [out :: domain.net] stack level too deep
 ** [out :: domain.net] (in /home/deployer/apps/domain/releases/20120410204601/app/assets/stylesheets/some.css.scss)
 ** [out :: domain.net] 
 ** [out :: domain.net] Tasks: TOP => assets:precompile:primary
 ** [out :: domain.net] (See full trace by running task with --trace)
Run Code Online (Sandbox Code Playgroud)

更新#2:

some.css的文件名实际上是some.css.scss.

更新#3:

我刚刚发现了这个问题,它是由以下原因引起的:

https://github.com/rails/sass-rails/issues/78

ruby-on-rails asset-pipeline

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

Rails/Heroku/Assets不包括在内

我有一个使用redactor(一个所见即所得编辑器)的应用程序,它在本地完美运行,当我上传它时也可以工作,除了配置文件,它位于子文件夹中,当推送到Heroku时做任何事情.我试过预编译,使用:

RAILS_ENV=production bundle exec rake assets:precompile
Run Code Online (Sandbox Code Playgroud)

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

我有config.assets.enabled = false

无法在Heroku上运行的config.js文件作为redactor-rails/config包含在application.js中

可能是什么问题?

assets ruby-on-rails heroku asset-pipeline

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

Capistrano部署资产预编译从不编译资产,为什么?

使用deploy.rb仅在更改时预编译rails资产,此任务总是跳过我的资产的编译:(

namespace :assets do
  task :precompile, :roles => :web, :except => {:no_release => true} do
    from = source.next_revision(current_revision)
    if capture("cd #{latest_release} && #{source.local.log(from)} vendor/assets/ app/assets/ | wc -l").to_i > 0
      run %Q{cd #{latest_release} && #{rake} RAILS_ENV=#{rails_env} #{asset_env} assets:precompile}
    else
      logger.info "Skipping asset pre-compilation because there were no asset changes"
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

什么可能导致这个完整的任务没有编译?它总是认为没有资产变化并抛出该消息.

我也从未真正理解任务,例如source.log.local下面的内容是什么?

source.local.log
Run Code Online (Sandbox Code Playgroud)

任何人都可以澄清任务命令的作用,并指出为什么它从未看到任何资产变化?谢谢

deployment capistrano precompile ruby-on-rails-3 asset-pipeline

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

Rails没有将缓存破坏时间戳附加到生产中的资产

我正在使用stylesheet_link_tag和资产管道,但我得到了这个:

<link href="/assets/application.css" media="screen" rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)

我的生产.rb

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

我假设它是设置或简单的东西..

caching ruby-on-rails asset-pipeline

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

Rails资产管道/链轮

我最近改用了资产管道.一切都运行良好,我可以预编译生产没有问题.

我遇到的麻烦是在我的开发环境中,我希望我做的更改不需要预编译即可生效.我找不到关于如何在本地立即查看我的最新CSS更改的明确说明.作为一个例子,除了我的application.css.scss'@ import句之外,我应该使用这样的东西吗?

//= depends_on reset
//= depends_on typography

@import "reset.css.scss"
@import "typography.css.scss"
Run Code Online (Sandbox Code Playgroud)

任何指针都将非常感激.

ruby-on-rails sass sprockets asset-pipeline

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

ArgumentError - 符号的转储格式错误(0x69)

所以我刚升级到FontAwesome 4.0.此更改的一部分是引用图标的方式.

你不能再这样做了:<i class="icon-beer"></i>.

现在......你不得不更换iconfa-,所以上面现在看起来是这样的: <i class="fa fa-beer"></i>

因此,我决定用icon-我的项目替换所有引用fa fa-.

其中包括缓存文件,转储文件以及所有样式表,视图等.

现在......当我尝试加载任何页面时,我收到此错误:

ArgumentError at /
dump format error for symbol(0x69)
Run Code Online (Sandbox Code Playgroud)

日志看起来像这样:

Completed 500 Internal Server Error in 1060ms

ArgumentError - dump format error for symbol(0x69):
  activesupport (3.2.14) lib/active_support/cache.rb:587:in `value'
  activesupport (3.2.14) lib/active_support/cache.rb:324:in `block in read'
  activesupport (3.2.14) lib/active_support/cache.rb:520:in `instrument'
  activesupport (3.2.14) lib/active_support/cache.rb:315:in `read'
  sprockets (2.2.2) lib/sprockets/caching.rb:70:in `cache_get'
  sprockets (2.2.2) lib/sprockets/caching.rb:45:in `cache_get_hash'
  sprockets (2.2.2) lib/sprockets/caching.rb:15:in `cache_asset'
  sprockets (2.2.2) lib/sprockets/index.rb:92:in `build_asset'
  sprockets …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails ruby-on-rails-3 asset-pipeline

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

在rails应用程序中运行rake任务

我想在rails应用程序中运行资产预编译任务,因为我有许多依赖项将更改代码,在这种情况下,无论何时更改我都需要运行脚本,因为我无法让服务器访问它们所以我提供从他们自己的GUI可以运行脚本,因此,我已经构建了UI来运行任务与一些参数,如

system("Template='#{params[:template]}' Theme='#{params[:theme]}' rake assets:precompile)
Run Code Online (Sandbox Code Playgroud)

我从UI获取了两个值(params [:template],params [:theme]).我想在另一个路径(站点路径)中运行此任务的另一个意思是管理端UI是那个任务应该在Site目录中执行,

  if(params[:theme_script] == "true")
      template=Template.where(:name => params[:template]).first
     if template
      theme = template.themes.where(:name => params[:theme]).first
      if theme
    #   Dir.chdir "#{THEMEPATH}"do
    #     `Template="#{template.name}" Theme="#{theme.name}" rake assets:precompile`
    #   end
    #      sleep 10
    #      system("#{Rails.root.to_s}/lib/shell_script.sh")
    #      RunRake.run_rake(template.name,theme.name)
    #   Dir.chdir "#{THEMEPATH}"do
    #     Rake::Task['assets:precompile'].invoke
    #   end
          ENV["Template"] = template.name
          ENV["Theme"] = theme.name
          precompile_task = "bundle exec rake assets:precompile --trace 2>&1"
          output = Dir.chdir(THEMEPATH) { %x[ #{precompile_task} ] }
          flash[:notice] = "Asset created successfully"
      else
        flash[:notice] = "U have enter …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails rake-task ruby-on-rails-3.1 asset-pipeline

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

Capistrano部署后,Rails资产未编译

我正在使用Capistrano部署我的Rails应用程序,除非我将ssh放入服务器并RAILS_ENV=development bundle exec rake assets:precompile手动运行,否则似乎不会对资产进行编译。

我已经尝试按照capistrano / rails github页面上的说明进行操作,但是不确定是否错过了一些内容。

运行cap production deploy成功完成。但是我不知道如何检查assets:precompile任务是否实际运行。运行cap production deploy:assets:precompile也成功完成,但是服务器上没有明显变化。

版本号

Server version: Apache/2.4.7 (Ubuntu)
Phusion Passenger 5.0.22
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]
Rails 4.2.5

capistrano (3.1.0)
capistrano-bundler (1.1.4)
capistrano-rails (1.1.6)
capistrano-rbenv (2.0.4)
Run Code Online (Sandbox Code Playgroud)

Capfile

require 'capistrano/setup'
require 'capistrano/deploy'

require 'capistrano/rbenv'
require 'capistrano/rails/assets'

Dir.glob('lib/capistrano/tasks/*.cap').each { |r| import r }
Run Code Online (Sandbox Code Playgroud)

config / deploy.rb

set :application, "website"
set :repo_url, "git@bitbucket.org:company/website.git"
set :deploy_to, "/var/www/#{fetch(:application)}"
set :user, "webmaster"

set :rbenv_path, …
Run Code Online (Sandbox Code Playgroud)

capistrano ruby-on-rails asset-pipeline ruby-on-rails-4 capistrano3

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