[RUBY] Was tun, wenn das von refile gepostete Bild nach dem Einstellen der 404-Fehlerseite in Rails verschwindet?

Überblick

Nur wenn ich in Rails eine 404-Fehlerseite erstelle, verschwindet das von refile gepostete Bild. Wenn Sie den Code auf der Fehlerseite auskommentieren, wird das Bild angezeigt.

Der Code für die 404-Fehlerseite ist unten.

application_controller.rb


  unless Rails.env.development?
    rescue_from Exception,                      with: :render_500 
    rescue_from ActiveRecord::RecordNotFound,   with: :render_404
    rescue_from ActionController::RoutingError, with: :render_404
  end

#Erstellen Sie ein Fehlerverzeichnis in Ansichten und 404 dort.html.erb/505.html.Erb erstellen
  def render_404
    render 'error/404', status: :not_found
  end

  def render_500
    render 'error/500', status: :internal_server_error
  end

config/routes.rb


Rails.application.routes.draw do

#Es wird in der Reihenfolge von oben ausgewertet, schreiben Sie es also unten
get '*path', to: 'application#render_404'

end

Ursache

Wenn Sie die Schienenrouten im Terminal überprüfen,

GET /*path(.:format)
refile_app /attachments

Es war in der Reihenfolge von. Da Routen von oben ausgewertet werden, wird "get" * von "config / route.rb" ausgewertet, bevor "/ attachments", die URL der Refile, für die in "config / route.rb" nichts festgelegt ist, ausgewertet wird. Pfad ', zu:' application # render_404'` wurde ausgewertet.

Bewältigung

Es ist in Ordnung, "refile_app / attachments" vor "GET / * path (.: Format)" auszuwerten.

Fügen Sie zunächst Folgendes zu initializers / refile.rb hinzu. Wenn refile.rb nicht existiert, erstellen Sie eine neue.

config/initializers/refile.rb


Refile.automount = false

config/routes.rb


Rails.application.routes.draw do

mount Refile.app, at: Refile.mount_point, as: :refile_app #hinzufügen
get '*path', to: 'application#render_404' #Schreiben Sie unten

end

Wenn Sie die Schienenrouten im Terminal überprüfen,

refile_app /attachments
GET /*path(.:format)

Ich denke, es liegt in der Reihenfolge von.

Ich denke, dass / attachments zuerst ausgewertet und das Bild angezeigt wird.

https://github.com/refile/refile#mounting Wie ich schrieb, musste ich die automatische Montage von Refile ausschalten und die Route selbst festlegen.

Recommended Posts

Was tun, wenn das von refile gepostete Bild nach dem Einstellen der 404-Fehlerseite in Rails verschwindet?
Was tun, wenn die Rails-Seite im Rails-Lernprogramm 1.3.2 nicht angezeigt wird?
[Rails / Docker] Was tun, wenn der Browser (localhost: 3000) nach dem Hinzufügen eines Edelsteins den Zugriff verweigert?
Was tun, wenn in Docker ein gcc-Fehler auftritt?
Was tun, wenn Cloud 9 im Rails-Lernprogramm voll ist?
Was tun, wenn im Testcode der Steuereinheit in Rails der Fehler "302" angezeigt wird?
Was tun, wenn das Hintergrundbild nach der Bereitstellung nicht angewendet wird?
Was tun, wenn der Rails-Server nicht gestartet werden kann?
[Schienen] Was tun, wenn das Refile-Bild beim Schreiben der Verarbeitung zum Zeitpunkt des Routing-Fehlers nicht angezeigt wird?
Was tun, wenn die Meldung "Ein Server läuft bereits" angezeigt wird. Fehler beim Versuch, den Rails-Server zu starten
Was tun, wenn das Update nach der Bereitstellung von Rails AWS nicht wirksam wird?
Was tun, wenn in bind.pry eine falsche Anzahl von Argumenten angezeigt wird?
Was tun, wenn in GlassFish eine java.io.IOException auftritt?
Was tun, wenn mysql2 einen Bundle-Installationsfehler erhält?
Was tun, wenn der Befehl Rails unbrauchbar wird?
[Rails] Was tun, wenn Sie versehentlich eine Bundle-Installation in einer Produktionsumgebung in Ihrer lokalen Umgebung durchführen?
[Rails Tutorial Kapitel 2] Was tun, wenn Sie einen Fehlern im Spaltennamen machen?
[Schienen] Was tun, wenn mit der Fehlermethode keine Fehlermeldung angezeigt wird?
Was tun, wenn während des Rails-Testcodes ein Fehler bei der Standardauthentifizierung auftritt?
[Rails 6] Was tun, wenn nach der Einführung von haml ein fehlender Vorlagenfehler auftritt? [Super easy]
[Rails] Was tun, wenn keine Daten in der Datenbank registriert sind?
Was tun, wenn Sie Ihr Root-Passwort unter CentOS7 vergessen haben?
[Rails] Was tun, wenn der Fehler Keine Datenbank ausgewählt und Unbekannte Datenbank in db: migrate angezeigt wird?
[Programmieranfänger] Was tun, wenn Schienen zu einem Fehler in der lokalen Entwicklungsumgebung werden?
Was tun, wenn beim Versuch, mit Eclipse zu erstellen, ein Fehler in der gemeinsam genutzten JNI-Bibliothek auftritt?
Was tun, wenn Sie in Thymeleaf Layout eine groovige Warnung erhalten?
Was tun, wenn das Präfix c in JSP nicht gebunden ist?
Was tun, wenn Ihnen der von swagger-codegen-cli generierte Code nicht gefällt?
Was tun, wenn Sie gem'bcrypt 'in Ihre Gemfile eingeben und bei der Bundle-Installation eine Fehlermeldung erhalten?
Was tun, wenn der Vorgang nicht zulässig ist, wenn ein Befehl im Terminal ausgeführt wird?
[Gradle] [checkstyle] Was tun, wenn die aktive Einstellung von Checkstyle durch "Gradle-Projekt aktualisieren" aus Eclipse entfernt wird?
Was tun, wenn der Build mit dem Fehler "Mit Swift x.x.x kompiliertes Modul kann vom Swift x.x.x-Compiler nicht importiert werden" fehlschlägt.
Was tun, wenn Sie das mit bootstrap-select erstellte Auswahlfeld nicht aktivieren können?
Was tun, wenn die Änderungen nicht in der JAR-Manifestdatei berücksichtigt werden?
Was tun, wenn eine javax.net.ssl.SSLHandshakeException angezeigt wird: Remote-Host hat während des Handshakes im IBM JDK die Verbindung geschlossen
Was tun, wenn Sie die Mastertabelle nach dem Importieren eines Projekts in Eclipse nicht in einer Datei speichern konnten?
Androd: Was tun gegen "The Realm befindet sich bereits in einer Schreibtransaktion in"
Was tun, wenn die ffi-Installation beim Starten einer Anwendung in Rails fehlschlägt?
So übersetzen Sie die Fehlermeldung ins Japanische (Was tun, wenn Sie sich aus irgendeinem Grund nicht anmelden können)
Was tun gegen "Ein Server läuft bereits ...", ohne dass der Rails-Server im Terminal ausgeschaltet wurde
Was tun, wenn beim Abrufen von Rails datetime_field die Fehlermeldung "Bitte geben Sie einen gültigen Wert ein" angezeigt wird?
Was tun, wenn die Fehlermeldung "JavaScript-Laufzeit konnte nicht gefunden werden" angezeigt wird? Beim Starten des Rails-Servers
Was tun, wenn in Rails 6.0 die Warnung "Der Eindeutigkeitsprüfer erzwingt in Rails 6.1 keinen Vergleich zwischen Groß- und Kleinschreibung mehr erzwingt" angezeigt wird
Was tun, wenn Sie das JDK, das Sie nach der Migration von bash nach zsh unter macOS in SDKMAN eingefügt haben, nicht finden können?
Was ist nach der Installation von 'devise' 'bootstrap' von gemfile with Rails zu tun, wenn url ein Fehler ist?
Was ist zu tun, wenn Fehler / Fehler: Datei erforderlich.expand_path ('../ config / environment', __dir__) in RSpec angezeigt wird
Was tun, wenn die bereits verwendete Adresse nach dem Ausführen der Schienen angezeigt wird?
Was tun, wenn Sie Ihren API-Schlüssel nach der Bereitstellung auf Rails heroku nicht finden können?