Pull to refresh

Comments 25

Терпеть не могу, когда на странице без спроса начинает играть музыка.
Я придерживаюсь мнения, что ни одна страница ни на одном сайте не должна выглядеть так:
Настоящая страница 404 должна у посетителя вызывать желание поскорее уйти оттудова и поскорей забыть это место… :)
Сразу вопрос, как в ExpressJS (Node.JS) сделать свои 404 страницы. app.get('*' не помогает, ибо по этому роуту проходит вся статика, а это все, что написано в официальной документации.
Уточню. Сначала подключаете статику, потом подключаете раутер а в самом конце ловите 404.

// Error handling
app.error(function(err, req, res, next){
    console.log(err);
    if (err instanceof NotFound) {
        res.render('errors/404', {
            title : 'Not Found',
            layout: 'login/layout',
            status: 404
        });
    } else {
        res.render('errors/500', {
            title : 'The Server Encountered an Error',
            layout: 'login/layout',
            error: err,
            status: 500
        });
    }
});

function NotFound(msg) {
    this.name = 'NotFound';
    Error.call(this, msg);
    Error.captureStackTrace(this, arguments.callee);
}

в конце всех роутов:
app.all('*', function(req, res){
    throw new NotFound('URL: ' + req.url);
});
Может я что-то не так делаю, но у меня не работает в таком случае статика.
Node v0.6.17
Express v2.5.8

app.configure(function(){
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  app.use(express.cookieParser());
  app.use(express.bodyParser());
  //app.use(express.methodOverride());
  app.use(express.static('/www/r/node/public'));
  app.use(app.router);
});

app.error(function(err, req, res, next){
    console.log(err);
    if (err instanceof NotFound) {
        res.render('404', {
            title : 'Not Found',
			layout: false,
            status: 404
        });
    } else {
        res.render('500', {
            title : 'The Server Encountered an Error',
			layout: false,
            error: err,
            status: 500
        });
    }
});

function NotFound(msg) {
    this.name = 'NotFound';
    Error.call(this, msg);
    Error.captureStackTrace(this, arguments.callee);
}

app.get('/', routes.index);

// 404
app.all('*', function(req, res){
    throw new NotFound('URL: ' + req.url);
});
«Кажется, что-то отвалилось». Это хорошо. Попробую сделать у себя.
Ага, а можно еще: «Извините, но ни ваша страница, ни страница 404 ошибки не найдена.»
Сто миллиардов раз эта тема поднималась. По-моему, Лебедев её уже давно закрыл.
По-моему на этой странице
image
больше полезной информации, чем на этой
image

Страница 404, на которой лишь написано «Страница не найдена», не будет полезной для посетителя; даже ссылка «Вернуться на главную» не поможет.

Главное, что на ней бесполезной информации тоже гораздо больше.
Вы хоть раз полностью прочитали все, что написано на первом скриншоте? Не забывайте программист и пользователи сайта видят его по разному — программисту лучше вывести trace, а пользователю просто сказать — у нас что-то сломалось.
Да, прочитал.
Там написано и то, и другое.
может не в тему, но мужики явно отжигают на последней странице 404=)
По-моему, еще стоит добавить, что нужно стремится чтобы на сайте количество подобных 404 страниц было минимальным, если такое возможно конечно. А то бывает вот, попадаешь — а там 404 еще и с надписью «страницы такой-то тут нет, но где-то у нас она тут может и есть, вот еще раз поиском воспользуйтесь» :))
Думал это перевод с yoast.com, а оказалось просто набор картинок с забавными зверушками. Так что я просто оставлю это здесь
tigors.net/custom-error-404-page/
И статья похоже (http://habrahabr.ru/post/142038/) и комменты к ней те же…
autorambler.ru/404 хорошая страница у авто-рамблера. Жаль, не сделали многопользовательские гоночки…
Sign up to leave a comment.

Articles