Beste Möglichkeit, statische Ordner bereitzustellen, die im Frontend-Build nicht angezeigt werden

Beste Möglichkeit, statische Ordner bereitzustellen, die im Frontend-Build nicht angezeigt werden

Ich habe die folgende Situation. Der Webinhalt meiner App befindet sich in einem Standardverzeichnis /var/www/my.domain.com/html/. Außerdem habe ich users_staticsirgendwo in diesem Verzeichnis einen Ordner, in dem meine App einige wichtige Dateien speichert, die von Benutzern hochgeladen wurden. Beachten Sie, dass diese Dateien nicht in den Frontend-Build integriert sind und während der Verwendung nur URLs zu diesen Dateien benötigt werden.

Mein Deploy-Pipeline-Skript löscht jedoch alle darin enthaltenen Dateien /var/www/my.domain.com/html/und fügt einen neuen Frontend-Build ein, der standardmäßig kein user_staticsVerzeichnis enthält. Beispiel:

rm -rf /var/www/my.domain.com/html/*
cp -av build/. /var/www/my.domain.com/html/

Daher bin ich gezwungen, user_staticsdas Verzeichnis an einem anderen Ort zu speichern und rsynces nach jeder Bereitstellung in den Webinhaltsordner zu verschieben:

  mkdir /var/www/my.domain.com/html/.../user_statics
  rsync -qah ./user-statics-bkp/* /var/www/my.domain.com/html/.../user_statics

Ich bin nicht sicher, ob dies die beste Vorgehensweise für diesen Ordner ist, da ich zu diesem Zeitpunkt der Backend-App eine API hinzufügen möchte, um mit ihrem Inhalt zu interagieren. So kann es beispielsweise während des Bereitstellungsprozesses zu falschen API-Aufrufen dieses Ordners kommen.

Ich sehe die folgenden Optionen, aber keine davon scheint mir perfekt:

  1. Schreiben Sie die CD-Pipeline irgendwie neu, um diesen Ordner während der Bereitstellung zu „ignorieren“.
  2. Verschieben Sie diesen Ordner in den /var/www/html/Ordner und schreiben Sie zusätzliche Anweisungen in die Nginx-Konfigurationsdatei.
  3. Öffnen Sie eine Subdomain für diesen Ordner und erstellen Sie einen Serverblock für diese Subdomain. Ich bin mir jedoch nicht sicher, ob dieser eine Ordner es „verdient“, in den neuen Serverblock aufgeteilt zu werden.

Gibt es Ihrer Erfahrung nach bessere Möglichkeiten, richtig damit umzugehen?

Antwort1

Schließlich habe ich diesen Ordner in diesem Pfad platziert und der Nginx-Konfigurationsdatei /var/www/html/path/to/user_staticseine einfache Standortanweisung hinzugefügt :sites-available/my.domain.com

location /path/to/user_statics {
     root /var/www/html/;
}

Danach leitet Nginx user_staticsdie Anfragen an diese Stelle im Dateisystem des Servers weiter, getrennt von /var/www/my.domain.com/html/. Im Moment funktioniert diese Lösung für mich gut.

verwandte Informationen