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 }