Как Каждый Реализует Динамические 404, 500, и т.д. Ошибочные Страницы в направляющих?

Используйте регулярное выражение ^....., чтобы сопоставить первые 5 символов каждой строки. использовать его в глобальной замене:

:%s/^.....//
7
задан Laz 3 June 2009 в 05:02
поделиться

4 ответа

Проверьте сообщение Хенрика Ниха . Другие тоже можно найти в Google.

Идея: Rails, кажется, отображает public / 404.html для ошибок 404.

  • Затем вы можете перезаписать страницу, если хотите отобразить статическое поле.
  • Для динамического содержимого кажется, что вы можете переопределить метод инфраструктуры для подключения и перенаправления для отображения вашей динамической страницы.

ActionController :: Rescue определяет rescue_action_in_public , который вызывает render_optional_error_file .

6
ответ дан 6 December 2019 в 05:49
поделиться

просто добавьте следующее в свой ApplicationController:

  rescue_from ActiveRecord::RecordNotFound, :with => :render_record_not_found

  # Catch record not found for Active Record
  def render_record_not_found
    render :template => "shared/catchmissingpage", :layout => false, :status => 404
  end

  # Catches any missing methods and calls the general render_missing_page method
  def method_missing(*args)
    render_missing_page # calls my common 404 rendering method
  end

  # General method to render a 404
  def render_missing_page
    render :template => "shared/catchmissingpage", :layout => false, :status => 404
  end

Вы можете настроить вызов рендеринга (использовать свои шаблоны, использовать макет и т. Д.) И таким образом отлавливать ошибки. Теперь он выявляет отсутствующий метод и record_not_found для вас, но, возможно, есть случаи, когда вы хотите отобразить страницу с ошибкой 500, чтобы вы могли просто пойти дальше, использовать этот подход и настроить его для вас.

Для тестирования с локальной машины , это так и работает. если вы хотите, чтобы он работал только в производственном режиме, добавьте

 if ENV['RAILS_ENV'] == 'production'

, и все в порядке.

9
ответ дан 6 December 2019 в 05:49
поделиться

Если вы все же решите создать динамический 404 ( или другой код состояния) обязательно удалите соответствующий html-файл из / public (если он существует)

3
ответ дан 6 December 2019 в 05:49
поделиться

Как насчет этого:

.green {
  display:block;
  float: left;
  background: green;
  width: 200px;
  height: 200px;
  position: relative;
}

.outer {
  position: relative;
  background: yellow;
  overflow: auto;
}

.pink {
  left: 250px;
  background: red;
  height: 100%;
  width: 100px;
  position: absolute;
}

Должен работать.. Может, я поменял цвета, розовая коробка с растущим!;)

редактировать ах ок, я пропустил плавающий на второй коробке. Если это обязательно, то, как упоминалось выше, faux колонки это хорошая техника, я думаю.

-121--4817606-

Зачем выбирать? Научитесь и Лиспу, и Хаскеллу самостоятельно. Однако нет смысла изучать F # в свое время. Если вам это нужно для работы, вы узнаете это на работе;)

EDIT: Парень смотрел на язык, чтобы научиться для удовольствия. Ну, Лисп и Хаскелл хорошие кандидаты, так как веселье - это все, для чего они будут использоваться (там нет оплачиваемой работы). Он «может» (хотя и маловероятно) иметь возможность использовать F # на работе (он находится в магазине MS), поэтому зачем учиться чему-то в свободное время, когда ему можно платить, изучая это на работе.

-121--1153247-

Я посмотрел несколько записей в блоге Google о том, как это сделать, к сожалению, большинство из них, похоже, полагаются на загрязнение вашего StartController.

Вместо этого я создал шаблон с сообщением 404, затем использовал этот шаблон для обновления открытого файла/404.html из задачи rake:

# Rake file to generate static 404 page

file "public/404.html" => ["app/views/layouts/application.html.erb"] do |t|
    print "Updating 404 page\n"
    `curl --silent http://locahost/content/error404 -o public/404.html`
end 

Теперь каждый раз, когда я обновляю свой глобальный макет, страница 404 обновляется автоматически.

13
ответ дан 6 December 2019 в 05:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: