【问题标题】:Check if href linked page exists检查href链接页面是否存在
【发布时间】:2016-06-22 07:28:19
【问题描述】:

是否有一种有趣的方法可以检查页面上的链接是否指向返回 HTML 200 代码的页面?我想允许用户在模型中设置自己的链接,但我也想阻止链接到 500 或 404 页面。

我认为,一种方法是在每个页面请求上检查控制器中的给定链接,并检查该链接的返回代码(使用 http-party)。然后根据这个结果做出反应。

模型(schema.rb):

create_table "teaser_items" do |t|
    t.string   "text",     limit: 255
    t.string   "link",     limit: 255
    ...
end

控制器:

def show
   # only if TeaserItem link is valid
   @teaser_items = TeaserItems.where(active: true).order(:position)
   ...
end

【问题讨论】:

    标签: jquery html ruby-on-rails ruby


    【解决方案1】:

    使用 ruby​​ 标准库,您可以执行以下操作:

    require 'net/http'
    
    url = URI.parse(@teaser_item.link)
    response = Net::HTTP.new(url.host, url.port)
    http.request_head(url.path)
    p response.status # check if 200 or 201
    

    法拉第宝石:

    Faraday.head(@teaser_item.link).status == 200
    

    【讨论】:

      猜你喜欢
      • 2015-11-13
      • 2011-10-15
      • 1970-01-01
      • 1970-01-01
      • 2016-04-27
      • 2016-07-24
      • 1970-01-01
      • 2015-09-01
      • 2011-01-27
      相关资源
      最近更新 更多