使用自定义OmniAuth提供程序图像无法加载

时间:2013-07-18 15:45:44

标签: omniauth gitlab

我已经成功创建了我的第一个OmniAuth策略并将其打包为gem。我将它添加到GitLab中的Gemfile并运行bundle install --path vendor/bundle --no-deployment,它安装了gem。

接下来,我通过复制GitHub的部分并使用我们自己的值完成它来更新gitlab.yml文件。

根据https://github.com/gitlabhq/gitlabhq/blob/5-3-stable/doc/install/installation.md的GitLab参考说明的指示 然后我将两个图像文件添加到vendor/assets/images/authbuttons目录,全部小写,格式为“strategyname_32.png”和“strategyname_64.png”。

最后我重新启动了GitLab,在登录页面上,我现在看到了一个新的提供程序的按钮(可以正常工作!)但是我上传的图像不用于按钮,而是使用了基本的灰色按钮

我在任何日志中找不到任何指示它无法找到图像文件的内容,并且我尝试使用各种情况重命名文件,因为这是在Ubuntu系统上。 我还执行了rake assets:precompile RAILS_ENV=production,但这似乎没有什么区别。

我是否遗漏了一些东西让我们的图片代替登录页面上的基本HTML按钮来表示此提供程序?我没有看到我在说明书中遗漏的任何步骤。

1 个答案:

答案 0 :(得分:1)

事实证明,这是“按设计”,其他提供程序加载为HTML按钮,并且不使用安装说明中提到的路径vendor/assets/images/authbuttons中放置的图形。这是因为只有default_providers()app/helpers/oauth_helper.rb function中列出的提供商才会使用vendor/assets/images/authbuttons目录中的图片显示在登录页面上。

因此,为了成功使用我的自定义omniauth提供程序并在GItLab登录页面上为登录链接提供图形元素,我执行了以下操作:

  • 停止GitLab sudo service gitlab stop
  • 将我的两个图片放在vendor/assets/images/authbuttons目录
  • 将我的提供程序添加为default_providers()文件的app/helpers/oauth_helper.rb函数中的默认提供程序之一
  • config/gitlab.yml client_idclient_secret
  • Gemfile中为我的提供商添加了一个部分
  • 将我的omniauth策略添加到sudo -u git -H bundle install --without development test postgres --path vendor/bundle --no-deploy文件
  • 使用sudo -u git -H rake assets:precompile RAILS_ENV=production
  • 从GitLab根目录安装gem
  • 使用sudo service gitlab start
  • 从GitLab根目录预编译资产
  • 启动GitLab {{1}}