diff --git a/lib/gitlab/conflict/file.rb b/lib/gitlab/conflict/file.rb
index b6fa9402d4628d1bb470331209da58d600f57a68..16727e752bd4084b7cbaf4e650c2c52fe30b2fa1 100644
--- a/lib/gitlab/conflict/file.rb
+++ b/lib/gitlab/conflict/file.rb
@@ -1,18 +1,21 @@
 module Gitlab
   module Conflict
     class File
+      include Gitlab::Routing.url_helpers
+
       class MissingResolution < StandardError
       end
 
       CONTEXT_LINES = 3
 
-      attr_reader :merge_file_result, :their_path, :our_path, :repository
+      attr_reader :merge_file_result, :their_path, :our_path, :merge_request, :repository
 
-      def initialize(merge_file_result, conflict, repository:)
+      def initialize(merge_file_result, conflict, merge_request:)
         @merge_file_result = merge_file_result
         @their_path = conflict[:theirs][:path]
         @our_path = conflict[:ours][:path]
-        @repository = repository
+        @merge_request = merge_request
+        @repository = merge_request.project.repository
       end
 
       # Array of Gitlab::Diff::Line objects
@@ -147,6 +150,9 @@ module Gitlab
         {
           old_path: their_path,
           new_path: our_path,
+          blob_path: namespace_project_blob_path(merge_request.project.namespace,
+                                                 merge_request.project,
+                                                 ::File.join(merge_request.diff_refs.head_sha, our_path)),
           sections: sections
         }
       end
diff --git a/lib/gitlab/conflict/file_collection.rb b/lib/gitlab/conflict/file_collection.rb
index 5df54fd8677fede0a15eb6be6f576c1873e67111..04a75f9edc3d71deee4a83c8d4f7ff89283085fb 100644
--- a/lib/gitlab/conflict/file_collection.rb
+++ b/lib/gitlab/conflict/file_collection.rb
@@ -47,7 +47,7 @@ module Gitlab
 
           Gitlab::Conflict::File.new(merge_index.merge_file(conflict[:ours][:path]),
                                      conflict,
-                                     repository: repository)
+                                     merge_request: merge_request)
         end
       end
 
diff --git a/spec/lib/gitlab/conflict/file_spec.rb b/spec/lib/gitlab/conflict/file_spec.rb
index 290640ced49decbb9f112b42f365cc2a15dde321..a57ca70672b0a58277924d71a08a318cb3a299de 100644
--- a/spec/lib/gitlab/conflict/file_spec.rb
+++ b/spec/lib/gitlab/conflict/file_spec.rb
@@ -6,10 +6,11 @@ describe Gitlab::Conflict::File, lib: true do
   let(:rugged) { repository.rugged }
   let(:their_commit) { rugged.branches['conflict-a'].target }
   let(:our_commit) { rugged.branches['conflict-b'].target }
+  let(:merge_request) { create(:merge_request, source_branch: 'conflict-b', target_branch: 'conflict-a', source_project: project) }
   let(:index) { rugged.merge_commits(our_commit, their_commit) }
   let(:conflict) { index.conflicts.last }
   let(:merge_file_result) { index.merge_file('files/ruby/regex.rb') }
-  let(:conflict_file) { Gitlab::Conflict::File.new(merge_file_result, conflict, repository: repository) }
+  let(:conflict_file) { Gitlab::Conflict::File.new(merge_file_result, conflict, merge_request: merge_request) }
 
   describe '#resolve_lines' do
     let(:section_keys) { conflict_file.sections.map { |section| section[:id] }.compact }
@@ -141,4 +142,11 @@ describe Gitlab::Conflict::File, lib: true do
       expect(section_ids.uniq).to eq(section_ids)
     end
   end
+
+  describe '#as_json' do
+    it 'includes the blob path for the file' do
+      expect(conflict_file.as_json[:blob_path]).
+        to eq("/#{project.namespace.to_param}/#{merge_request.project.to_param}/blob/#{our_commit.oid}/files/ruby/regex.rb")
+    end
+  end
 end