2009-07-30 2 views
3

Was ist der einfachste Weg, um die Pfade der Bilder nach der Migration der Website vom lokalen Computer auf einen Live-Server zu aktualisieren. In den meisten Fällen aktualisiere ich die Pfade manuell. Ich bin überzeugt, dass es einen einfacheren Weg geben muss, den ich verpasse.Defekte Image-Links nach der Migration einer Drupal-Site von Local Machine zu Live Server

Mit freundlichen Grüßen.

+0

Definieren Sie "Bildlinks". Themenbilder? ImageCache Bilder? Hochgeladene Bilder? Es gibt viele verschiedene Komponenten, die Bilder in Drupal anzeigen, und die meisten sollten sich gut an eine Serverbewegung anpassen, solange Sie die URL der Website in den Einstellungen aktualisieren ... – ceejayoz

+0

Ich denke, dass wahrscheinlich etwas schief geht, das Sie beheben müssen . Ich verwende einen lokalen Server, um neue Module zu testen, bevor sie auf einer öffentlichen Website bereitgestellt werden. Ich aktualisiere regelmäßig meinen lokalen Server mit einer neuen Sicherung von der öffentlichen Website und die einzigen Male, dass Bilder unterbrochen werden, wenn Verzeichnisberechtigungen in meinem lokalen Dateisystem falsch sind. – Bevan

+0

Welche URL wird für die Bilder verwendet, die nicht geladen werden können? Und welche URL * sollten * diese Bilder haben? Bitte geben Sie einige Beispiele. – Bevan

Antwort

3

Meine Vermutung ist, dass das Problem, das Sie sehen, ein Ergebnis der nicht den Dateipfad in der Verwaltung festlegen. Wenn Sie in die Administration gehen (Admin/Einstellungen/Dateisystem) und einfach die Seite speichern, definieren Sie den Wert für den Dateipfad (der die Probleme entfernen sollte).

Sie können auch alle Dateien so einstellen, dass sie das ursprüngliche Standardverzeichnis (oder das lokale Verzeichnis) über diese Schnittstelle verwenden.

Das Problem, falls Sie sich fragen, ist, dass der Aufruf von Variable_get unter der Haube für den Dateipfad dynamisch ist, basierend auf dem Site-Verzeichnis, aus dem Sie die Datei settings.php laden. Sobald der Wert festgelegt ist, greift er nicht mehr auf die Standardeinstellung zurück und verwendet stattdessen Ihren Wert.

Wenn Sie die Dateien physisch von dem relativen Speicherort verschieben, an dem sie sich lokal auf dem Server befinden, dann bin ich mir nicht sicher, ob es ein großes Problem gibt.

+0

Ok .. danke für die Antwort. Ich habe jedoch versucht, den Pfad mit dem Dateisystem in der Vergangenheit ohne viel Erfolg zu ändern. Obwohl ich das nächste Mal, wenn ich eine einzelne Site aus dem Multi-Site-Setup, das ich auf meinem lokalen Rechner installiert habe, kopiere und es individuell auf dem Live-Server konfiguriere, würde ich sicherlich versuchen, es erneut zu überprüfen. Vielen Dank – Sbhambry

1

Eigentlich habe ich eine Multi-Site-Setup auf dem lokalen Rechner und eine einzelne Site-Setup auf dem Live-Server, was zu defekten Images bei der Bereitstellung führt. Der einfachste Weg, dies zu beheben, besteht darin, den Dateipfad auf dem Server mit einer einfachen SQL-Abfrage zu aktualisieren. UPDATE-Dateien SET Dateipfad = REPLACE (Dateipfad, 'alt/Pfad', 'neu/Pfad');

+0

Ich habe dieses Problem auch festgestellt. Haben Sie seither einen eleganteren Weg gefunden, dieses Problem zu lösen? –

+0

BTW dieses Problem ist in Drupal 7 behoben. Sie müssen das Pfadpräfix nicht mehr wie oben beschrieben ersetzen. –

0

Ich habe eine Site vom lokalen Dev-Server zum Remote-Dev-Server verschoben. Alle Bilder sind zerbrochen. Sogar neue Bilder, die ich nach dem Umzug hochgeladen habe, sind als defekte Links aufgetaucht. Ich habe schließlich herausgefunden, dass sich die Berechtigung für meine Websites/DOMAIN_NAME/dateien geändert hat. Dieser Ordner kann für Webbenutzer am besten ausführbar sein, sonst kann Drupal nicht darauf zugreifen, um die Dateien in diesem Ordner abzurufen.

1

Als dies für uns brach, waren wir gerade von einer Acquia Drupal 7-Installation auf einem lokalen Host zu einer Produktionsmaschine migriert. Es stellte sich heraus, dass das Server-Setup nur so unterschiedlich war, dass ein Teil des Pfades nach dem Datenbankimport falsch war.

Wir fanden, dass eine

select * from menu_router where path like '%sites/myoldpath%' 

einen Pfad für ein page_callback genannt image_style_deliver aufgedreht

zu tun, die auf dem neuen Server ungültig war.

update menu_router set path 'sites/mynewpath/files/styles%', tab_root = 'sites/mynewpath/files/styles/%' where path like '%myoldpath%' 

Es stellte sich heraus, die Lösung zu sein. Ich musste nicht einmal irgendwelche Inhalte neu generieren. Drupal wurde sofort wiederhergestellt und erzeugte die entsprechenden Vorschaubilder in den richtigen Ordnern.

0

Der einfachste Weg, es vor einer Weile auf meinem Server zu tun, ist die Datenbank .SQL-Dump-Datei mit Suchen und Ersetzen zu bearbeiten, um den gewünschten Datei- oder URL-Pfad vom alten auf den neuen Server zu ersetzen Server. Ich migrierte Mu Drupal Website und stellte fest, dass die Links waren gebrochen und das ist, was ich getan habe, um das Problem zu lösen 1: nehmen Sie die Website offline 2: sichern Sie Ihre Datenbank mit SQL Dump. Löschen Sie die alte Datenbank.

3: Verwenden Sie Suchen und Ersetzen, um eine Kopie der SQL-Dump-Datei zu bearbeiten und den Pfad zu der URL oder den Dateien, die Sie benötigen, zu speichern. In meinem Fall wollte ich das URL-Präfix aller meiner Bilderlinks von e bearbeiten.g http://my.oldserver.co.uk bis http://newserver.ac.uk. 4 Erstellen Sie eine neue Datenbank, und importieren Sie die bearbeitete .sql-Datei unter Verwendung der gleichen Datenbanknamen, Benutzernamen und des gleichen Kennworts.

  1. bringen Sie die Website online und Viola, Ihre Bild Links funktionieren.