From a0524ea4d1aaa9481a97e82f64688f1a816addfb Mon Sep 17 00:00:00 2001 From: Sam Date: Tue, 22 Sep 2015 09:37:23 +1000 Subject: [PATCH] FIX: render canonical URLs --- app/controllers/topics_controller.rb | 3 ++- spec/controllers/topics_controller_spec.rb | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/controllers/topics_controller.rb b/app/controllers/topics_controller.rb index 7be74273ae1..d139479de09 100644 --- a/app/controllers/topics_controller.rb +++ b/app/controllers/topics_controller.rb @@ -83,9 +83,10 @@ class TopicsController < ApplicationController response.headers['X-Robots-Tag'] = 'noindex' end + canonical_url UrlHelper.absolute_without_cdn("#{Discourse.base_uri}#{@topic_view.canonical_path}") + perform_show_response - canonical_url UrlHelper.absolute_without_cdn("#{Discourse.base_uri}#{@topic_view.canonical_path}") rescue Discourse::InvalidAccess => ex if current_user diff --git a/spec/controllers/topics_controller_spec.rb b/spec/controllers/topics_controller_spec.rb index 0100315a208..aba6ae9fec5 100644 --- a/spec/controllers/topics_controller_spec.rb +++ b/spec/controllers/topics_controller_spec.rb @@ -521,6 +521,17 @@ describe TopicsController do end end + describe 'show full render' do + render_views + + it 'correctly renders canoicals' do + topic = Fabricate(:post).topic + get :show, topic_id: topic.id, slug: topic.slug + expect(response).to be_success + expect(css_select("link[rel=canonical]").length).to eq(1) + end + end + describe 'show' do let(:topic) { Fabricate(:post).topic }