diff --git a/app/assets/javascripts/discourse/controllers/exception.js.es6 b/app/assets/javascripts/discourse/controllers/exception.js.es6 index a44d0b9c93..dc265426a0 100644 --- a/app/assets/javascripts/discourse/controllers/exception.js.es6 +++ b/app/assets/javascripts/discourse/controllers/exception.js.es6 @@ -32,6 +32,7 @@ export default Ember.Controller.extend({ if (this.get('thrown.jqTextStatus') === "timeout") return true; return false; }.property(), + isNotFound: Em.computed.equal('thrown.status', 404), isForbidden: Em.computed.equal('thrown.status', 403), isServer: Em.computed.gte('thrown.status', 500), diff --git a/app/assets/javascripts/discourse/routes/app-route-map.js.es6 b/app/assets/javascripts/discourse/routes/app-route-map.js.es6 index 8ec183d8b5..72dca540a1 100644 --- a/app/assets/javascripts/discourse/routes/app-route-map.js.es6 +++ b/app/assets/javascripts/discourse/routes/app-route-map.js.es6 @@ -1,6 +1,7 @@ export default function() { // Error page this.route('exception', { path: '/exception' }); + this.route('exception-unknown', { path: '/404' }); this.route('about', { path: '/about', resetNamespace: true }); diff --git a/app/assets/javascripts/discourse/routes/application.js.es6 b/app/assets/javascripts/discourse/routes/application.js.es6 index a035ef6c70..599adde72c 100644 --- a/app/assets/javascripts/discourse/routes/application.js.es6 +++ b/app/assets/javascripts/discourse/routes/application.js.es6 @@ -83,6 +83,10 @@ const ApplicationRoute = Discourse.Route.extend(OpenComposer, { c.error(xhrOrErr); } + if (xhrOrErr && xhrOrErr.status === 404) { + return this.transitionTo('exception-unknown'); + } + exceptionController.setProperties({ lastTransition: transition, thrown: xhrOrErr }); this.intermediateTransitionTo('exception'); diff --git a/app/assets/javascripts/discourse/routes/exception-unknown.js.es6 b/app/assets/javascripts/discourse/routes/exception-unknown.js.es6 new file mode 100644 index 0000000000..a3d0778d30 --- /dev/null +++ b/app/assets/javascripts/discourse/routes/exception-unknown.js.es6 @@ -0,0 +1,7 @@ +import UnknownRoute from 'discourse/routes/unknown'; + +export default UnknownRoute.extend({ + renderTemplate() { + this.render('unknown'); + } +});