FIX: canonical url should not use the CDN

This commit is contained in:
Régis Hanol 2013-12-17 00:35:34 +01:00
parent 7fb985a02e
commit 2ce75a8523
3 changed files with 22 additions and 4 deletions

View File

@ -59,7 +59,7 @@ class TopicsController < ApplicationController
perform_show_response perform_show_response
canonical_url absolute(@topic_view.canonical_path) canonical_url absolute_without_cdn(@topic_view.canonical_path)
end end
def wordpress def wordpress

View File

@ -6,8 +6,12 @@ module UrlHelper
url.start_with?(Discourse.asset_host || Discourse.base_url_no_prefix) url.start_with?(Discourse.asset_host || Discourse.base_url_no_prefix)
end end
def absolute(url) def absolute(url, cdn = Discourse.asset_host)
url =~ /^\/[^\/]/ ? (Discourse.asset_host || Discourse.base_url_no_prefix) + url : url url =~ /^\/[^\/]/ ? (cdn || Discourse.base_url_no_prefix) + url : url
end
def absolute_without_cdn(url)
absolute(url, nil)
end end
def schemaless(url) def schemaless(url)

View File

@ -33,10 +33,24 @@ describe UrlHelper do
helper.absolute("http://www.discourse.org").should == "http://www.discourse.org" helper.absolute("http://www.discourse.org").should == "http://www.discourse.org"
end end
it "changes a relative url to an absolute one" do it "changes a relative url to an absolute one using base url by default" do
helper.absolute("/path/to/file").should == "http://test.localhost/path/to/file" helper.absolute("/path/to/file").should == "http://test.localhost/path/to/file"
end end
it "changes a relative url to an absolute one using the cdn when enabled" do
Rails.configuration.action_controller.stubs(:asset_host).returns("http://my.cdn.com")
helper.absolute("/path/to/file").should == "http://my.cdn.com/path/to/file"
end
end
describe "#absolute_without_cdn" do
it "changes a relative url to an absolute one using base url even when cdn is enabled" do
Rails.configuration.action_controller.stubs(:asset_host).returns("http://my.cdn.com")
helper.absolute_without_cdn("/path/to/file").should == "http://test.localhost/path/to/file"
end
end end
describe "#schemaless" do describe "#schemaless" do