小编rct*_*eil的帖子

在Rails资产管道中使用字体

我在我的Scss文件中配置了一些字体,如下所示:

@font-face {
  font-family: 'Icomoon';
  src: asset-url('icoMoon.eot?#iefix', font) format('embedded-opentype'),
       asset-url('icoMoon.woff', font) format('woff'),
       asset-url('icoMoon.ttf', font)  format('truetype'),
       asset-url('icoMoon.svg#Icomoon', font) format('svg');
}
Run Code Online (Sandbox Code Playgroud)

实际的字体文件存储在/ app/assets/fonts /中

我已经添加config.assets.paths << Rails.root.join("app", "assets", "fonts")到我的application.rb文件中

编译CSS源代码如下:

@font-face {
  font-family: 'Icomoon';
  src: url(/assets/icoMoon.eot?#iefix) format("embedded-opentype"), url(/assets/icoMoon.woff) format("woff"), url(/assets/icoMoon.ttf) format("truetype"), url(/assets/icoMoon.svg#Icomoon) format("svg");
}
Run Code Online (Sandbox Code Playgroud)

但是当我运行应用程序时,找不到字体文件.日志:

开始获取"/assets/icoMoon.ttf"为127.0.0.1在2012-06-05 23:21:17 +0100服务资产/icoMoon.ttf - 404未找到(13ms)

为什么资产管道没有将字体文件缩小为just/assets?

人们有什么想法?

亲切的问候,尼尔

额外信息:

在检查rails控制台的资产路径和assetprecompile时,我得到以下内容:

1.9.2p320 :001 > y Rails.application.config.assets.precompile
---
- !ruby/object:Proc {}
- !ruby/regexp /(?:\/|\\|\A)application\.(css|js)$/
- .svg
- .eot
- .woff
- .ttf
=> nil



1.9.2p320 :002 > …
Run Code Online (Sandbox Code Playgroud)

assets ruby-on-rails sass font-face asset-pipeline

337
推荐指数
8
解决办法
17万
查看次数

使用Ansible安装Bundler gem

我正在尝试使用Ansible在我的VPS上安装Bundler.

我已经设置了rbenv,全局ruby是2.1.0.

如果我以root身份SSH到服务器并运行gem install bundler,它将完美安装.

我已经尝试了以下三种使用Ansible来安装Bundler gem的方法,并且这三种方法都没有产生任何错误,但是当我在SSH中运行时gem list,Bundler无处可见.

尝试1:

---
- name: Install Bundler
  shell: gem install bundler
Run Code Online (Sandbox Code Playgroud)

尝试2:

---
- name: Install Bundler
  shell: gem install bundler
Run Code Online (Sandbox Code Playgroud)

尝试3:

---
- name: Install Bundler
  gem: name=bundler
       state=latest
Run Code Online (Sandbox Code Playgroud)

我也尝试了最后的尝试,user_install=yesuser_install=no没有做任何改变.

有什么想法我怎么能通过Ansible正确安装Bundler?

我已经在这方面工作了一段时间,我安装了1个ruby版本:2.1.0和ahve发现rbenv的shims目录不包含垫片bundle.

应该有垫片bundle吗?我只是感到困惑,为什么capistrano无法找到bundle命令,因为它在我运行sudo gem list时列出但不是在我跑的时候gem list

root@weepingangel:/usr/local/rbenv/shims# echo $PATH
/usr/local/rbenv/shims:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
root@weepingangel:/usr/local/rbenv/shims# gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 2.2.0
  - RUBY VERSION: 2.1.0 (2013-12-25 …
Run Code Online (Sandbox Code Playgroud)

ruby ubuntu rubygems bundler ansible

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

Gulp二手资产

我让Gulp将我的所有JS和CSS编译成组合文件并输出到/public/assets/js/application.js/public/assets/js/application.css

这一切都很棒,但像CSS背景图像等链接文件的URL路径现在不再有用了.

由于这些链接的资产在我的/vendor/assets/bower-components目录中,我不能只重写路径,因为/vendor不能访问Web.我想要做的是浏览CSS和JS编译的文件,找到所有链接的资产引用,去抓取它们并将它们放入/public/assets/<filetype-here>

然后重写到新位置的路径.

我需要的是一种查找(主要是CSS)所有引用的方法,但也可以是JS.抓取该文件,检查它是什么文件类型,将其放在/public/assets<filetype-here>文件夹中并重写原始文件路径.

你会怎么做呢?我意识到我可以使用像gulp-repace等插件,但不知道怎么做"把这个已被发现的东西拿去,去拿那个文件并用它做点什么"这样的事情.

一个例子非常有用.

谢谢

javascript css assets bower gulp

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

Rails InvalidCrossOriginRequest

remote: true在我的Rails应用程序页面上有一个链接,它调用.js同一页面的版本,然后运行脚本来更新页面内容.

它工作正常,但从昨天起,我现在Security warning: an embedded <script> tag on another site requested protected JavaScript. If you know what you're doing, go ahead and disable forgery protection on this action to permit cross-origin JavaScript embedding.每次点击其中一个链接.

关于如何阻止这一点的任何想法?

ajax ruby-on-rails request

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

在RSpec中测试默认范围

我正在尝试在模型中测试我的默认范围行.

我的测试如下:

it 'orders by ascending name by default' do
  expect(Coaster.scoped.to_sql).to eq Coaster.order(:name).to_sql
end
Run Code Online (Sandbox Code Playgroud)

我的错误是:

expected: "SELECT \"coasters\".* FROM \"coasters\"  ORDER BY name ASC, name"
got: "SELECT \"coasters\".* FROM \"coasters\"  ORDER BY name ASC"
Run Code Online (Sandbox Code Playgroud)

, name错误第一行末尾的部分是什么意思,我该如何解决这个问题呢?

更新:

我的测试:

  describe 'default scope' do
    let!(:coaster_one) { FactoryGirl.create(:coaster, name: "Tower of Terror") }
    let!(:coaster_two) { FactoryGirl.create(:coaster, name: "Apocalypse") }

    it 'orders by ascending name' do
      Coaster.all.should eq [:coaster_two, :coaster_one]
    end
  end
Run Code Online (Sandbox Code Playgroud)

我的错误:

expected: [:coaster_two, :coaster_one]
            got: [#<Coaster id: 5, name: "Apocalypse", height: …
Run Code Online (Sandbox Code Playgroud)

testing rspec ruby-on-rails rspec-rails

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

Rails Active Storage 无模型

Rails Active Storage 可以在没有模型支持的情况下使用吗?我有一个表格,需要上传文件,但我不希望将其附加到模型中。我只需要上传文件,以便我可以使用后台作业处理它,然后将其删除。

ruby-on-rails rails-activestorage

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

Rails并使用Gulp/Grunt为视图注入代码

我如何使用Gulp/Grunt插件中的一个编译某种类型的资产,然后用Rails中的一组脚本或链接标记等替换视图中的自定义注释行,以便每次都不会将视图文件视为已更改我的版本控制系统发生了什么?

assets ruby-on-rails gulp

9
推荐指数
0
解决办法
148
查看次数

可能的sprockets-rails gem问题?

我刚刚创建了一个新的Vagrant框,以便能够开发我的Rails应用程序.这个盒子是全新的,并且安装了Ruby,MySQL等以便能够开发.

我安装了所有宝石等但是当我尝试启动应用程序时,我得到以下内容:

vagrant@neiltongesite:/vagrant/source$ bundle exec foreman start
17:45:02 rails.1 | started with pid 5910
17:45:05 rails.1 | /home/vagrant/.gem/ruby/2.2.7/gems/sprockets-rails-3.2.0/lib/sprockets/railtie.rb:108:in `block in <class:Railtie>': undefined method `+' for false:FalseClass (NoMethodError)
17:45:05 rails.1 |  from /home/vagrant/.gem/ruby/2.2.7/gems/railties-4.2.5.1/lib/rails/initializable.rb:30:in `instance_exec'
17:45:05 rails.1 |  from /home/vagrant/.gem/ruby/2.2.7/gems/railties-4.2.5.1/lib/rails/initializable.rb:30:in `run'
17:45:05 rails.1 |  from /home/vagrant/.gem/ruby/2.2.7/gems/railties-4.2.5.1/lib/rails/initializable.rb:55:in `block in run_initializers'
17:45:05 rails.1 |  from /opt/rubies/ruby-2.2.7/lib/ruby/2.2.0/tsort.rb:226:in `block in tsort_each'
17:45:05 rails.1 |  from /opt/rubies/ruby-2.2.7/lib/ruby/2.2.0/tsort.rb:348:in `block (2 levels) in each_strongly_connected_component'
17:45:05 rails.1 |  from /opt/rubies/ruby-2.2.7/lib/ruby/2.2.0/tsort.rb:429:in `each_strongly_connected_component_from'
17:45:05 rails.1 |  from /opt/rubies/ruby-2.2.7/lib/ruby/2.2.0/tsort.rb:347:in `block in each_strongly_connected_component'
17:45:05 …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails vagrant sprockets

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

Rails .js.erb模板不再适用于Webpack

我刚刚将我的Rails应用程序切换到使用WebPack处理资产等.除了我的视图目录(*.js.erb)中有一些JS模板之外,它还运行良好.这些需要jQuery,并且当jQuery作为我的WebPack包的一部分被引入时,它不适用于那些模板.

有没有办法让这些模板工作?

javascript jquery ruby-on-rails webpack

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

FORBIDDEN/12/index 只读/允许删除(api)问题

将项目导入我的 Rails 应用程序时,我不断收到 SearchKick 代表 Elasticsearch 引发的上述错误。

我在 Docker 中运行 Elasticsearch。我通过运行 docker-compose up 来启动我的应用程序。我试过运行上面推荐的命令,但我只是得到“没有这样的文件或目录”返回。有任何想法吗?

我确实有端口 9200 暴露在外面,但似乎没有任何帮助。有任何想法吗?

ruby-on-rails elasticsearch searchkick

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