diff --git a/app/assets/javascripts/discourse/lib/onebox.js b/app/assets/javascripts/discourse/lib/onebox.js index bb282ce15..e39635bea 100644 --- a/app/assets/javascripts/discourse/lib/onebox.js +++ b/app/assets/javascripts/discourse/lib/onebox.js @@ -51,7 +51,8 @@ Discourse.Onebox = { // Retrieve the onebox var promise = Discourse.ajax("/onebox", { dataType: 'html', - data: { url: url, refresh: refresh } + data: { url: url, refresh: refresh }, + cache: true }); // We can call this when loading is complete diff --git a/lib/onebox/engine/discourse_local_onebox.rb b/lib/onebox/engine/discourse_local_onebox.rb index 7857f5555..d8bf15376 100644 --- a/lib/onebox/engine/discourse_local_onebox.rb +++ b/lib/onebox/engine/discourse_local_onebox.rb @@ -10,6 +10,25 @@ module Onebox 1 end + def self.===(other) + if other.kind_of?(URI) + uri = other + begin + route = Rails.application.routes.recognize_path(uri.path) + case route[:controller] + when 'topics' + true + else + false + end + rescue ActionController::RoutingError + false + end + else + super + end + end + def to_html uri = URI::parse(@url) route = Rails.application.routes.recognize_path(uri.path)