Alcune immagini non trovate (404) in localhost

15 ago 2013, 06:08:39
Visualizzazioni: 18.5K
Voti: 1

Ho appena trasferito un'installazione WordPress dal dominio al mio localhost. Ho seguito tutti i passaggi consueti: copiare i file, esportare il database sostituendo domain.com con localhost, aggiornare wp-config.php e aggiornare i permalink. Tutte le pagine e le regole di rewrite personalizzate funzionano, ma alcune immagini restituiscono errore 404.

Quando controllo queste immagini sul dominio effettivo funziona tutto correttamente, ma c'è qualcosa che non torna; se controllo l'url dell'immagine punta a questo percorso:

http://domain.com/wp-content/uploads/2013/08/IMG_0425-185x185.jpg

Ma questo file non esiste! Ho controllato nella cartella uploads via FTP e il file non è presente, esiste solo IMG_0425-185x185-150x150.jpg. Nota che 185x185 fa parte del nome file originale mentre 150x150 è stato aggiunto da WP.

In localhost l'immagine non viene visualizzata (404), il che ha senso.

Perché l'immagine viene visualizzata sul dominio quando non esiste nemmeno? WordPress sta forse risolvendo l'immagine nella miniatura generata? Perché non funziona sul localhost in questo caso?

Modifica:

Ecco ciò che non ha senso. Com'è possibile? Forse la cache c'entra qualcosa?
Come puoi vedere nessuna traccia di IMG_0425-185x185.jpg nella cartella (??) ma IMG_0425-185x185-150x150.jpg esiste.

Screenshot cartella uploads che mostra i file mancanti

2
Commenti

Questa domanda è stata risolta? La mia risposta ti è stata utile?

Ethan Rævan Ethan Rævan
2 set 2016 13:32:19

nel mio caso, un plugin chiamato "WebP Express" ha creato un file htaccess nella cartella uploads che limitava il mio accesso ad alcune immagini. prova a rinominarlo o rimuoverlo e verifica se il problema persiste.

Sanikookalam Sanikookalam
18 dic 2023 14:35:24
Tutte le risposte alla domanda 3
0

Modificare solamente i valori di home e siteurl nella tabella wp_options purtroppo non è sufficiente. Il contenuto dei tuoi post continuerà a contenere il tuo URL non locale (http://domain.com), causando problemi nella visualizzazione del sito sul tuo localhost.

Dopo aver scaricato e importato il database sul tuo localhost, segui questi passaggi:

  1. Scarica lo script Database Search & Replace di Interconnect IT da qui
  2. Decomprimi il file e posiziona la cartella nella root del tuo localhost dove è installato WordPress, quindi rinomina la cartella in replace (screenshot)
  3. Accedi alla nuova cartella che hai creato tramite il browser (es: http://localhost/wordpress/replace) e vedrai lo strumento di ricerca/sostituzione
  4. A questo punto dovrebbe essere abbastanza intuitivo: inserisci il tuo vecchio URL nel campo search for… e il nuovo URL nel campo replace with…

Puoi cliccare il pulsante dry run sotto actions per vedere quali modifiche verranno apportate prima di eseguire lo script. Una volta terminato, assicurati di rimuovere la cartella /replace/.

2 set 2016 13:31:40
5

Se non è presente nel tuo client FTP - quindi non sul tuo server - non verrà visualizzato sul tuo sito. Quindi è quasi sicuramente un problema di cache nel tuo browser, hai provato a svuotarla o a fare un aggiornamento forzato? Il rewrite di WordPress non passerà automaticamente alla miniatura se l'immagine originale non è presente. Il file .htaccess caricherà semplicemente index.php che restituirà un errore 404.

L'altra cosa che controllerei è assicurarsi che l'URL punti effettivamente dove pensi che punti. WordPress memorizza tutti i link delle immagini come URL assoluti nel database. E a meno che non esegui un find+replace quando trasferisci un sito, questi non verranno aggiornati. Hai detto che stavi spostando il sito ed è abbastanza probabile che tu stia effettivamente caricando l'immagine da un server più vecchio.

15 ago 2013 08:39:53
Commenti

Controlla l'immagine che ho aggiunto. È la cosa strana. Sul dominio l'immagine viene visualizzata anche se l'URL punta a un'immagine che non esiste. Ho fatto search/replace come faccio sempre, mai avuto questo problema. È strano. Ho disattivato la cache e continua a darmi 404. Ho ripetuto il processo un paio di volte, stessa cosa.

elclanrs elclanrs
15 ago 2013 08:43:16

Hai pulito la cache del browser? Che tipo di plugin hai installato? Anche se non riesco a immaginare che un plugin di caching faccia questo, tutti quelli che ho visto usano l'output caching solo per alleggerire il carico sul DB e sulla costruzione del DOM PHP. Ma stai comunque caricando gli asset dal server.

George Yates George Yates
15 ago 2013 08:46:02

Sto ricostruendo tutte le miniature con http://wordpress.org/plugins/ajax-thumbnail-rebuild/. 2 su 259, 3 su 259... vediamo come va. Ho disattivato il plugin Super Cache in localhost e il problema persiste.

elclanrs elclanrs
15 ago 2013 08:50:13

Buona fortuna. Io ho ottenuto buoni risultati con questa opzione se quello non dovesse funzionare.

George Yates George Yates
15 ago 2013 08:52:27

Finito, non ha funzionato. Penso che forse alcune immagini siano state caricate con permessi diversi, quindi non compaiono nell'FTP con le mie credenziali. Potrei dover contattare il cliente e verificare se questo è il problema, perché le immagini si vedono nel dominio ma non nell'FTP. Non mi viene in mente altro se non questo...

elclanrs elclanrs
15 ago 2013 08:58:25
0

Potrebbe essere un problema di permessi. Vai alla cartella wp-content dalla console e digita:

chmod -R 767 uploads

Informazioni sui permessi nel Codex.

14 ago 2015 23:37:21