Ci sono numerosi file JavaScript mancanti. Questi sono stati i primi trovati.
Revisione iniziale:
I file non sono disponibili tramite la mia CDN.
La CDN preleva dal mio bucket S3.
I file non sono nel mio bucket S3 dove sono archiviati tutti gli altri asset.
Guardando i risultati della ricostruzione, posso vedere quanto segue.
I 4 file sono stati creati e scritti in public/assets/ con estensione .js.
I 4 file sono stati compressi e salvati con estensione .br.js.
Controllo sul mio server:
Tutti e 4 i file .js sono disponibili sul mio server.
I file .br.js non sono disponibili sul mio server.
I file .br.js non sono nel mio bucket S3.
Scorrendo i risultati della ricostruzione, sembra che l’attività after_assets_precompile non venga eseguita durante le mie ricostruzioni. Posso eseguire manualmente un rake s3:upload_assets e gli asset vengono migrati su S3 e tutto funziona bene.
Ho controllato quanto segue:
Il mio file yml supera i controlli per una formattazione corretta.
Cosa posso controllare per determinare perché after_assets_precompile non viene elaborato come parte della ricostruzione?
Puoi trovare quel rake task lì e quindi eseguirlo dall’interno del container (per risparmiare tempo di una ricostruzione). E poi fare una ricostruzione una volta modificato il file yml.
S3 è attivo e funzionante sul sito da 43 giorni. I comandi rake sono stati inseriti lì come parte dell’installazione di S3.
Il sito è stato ricostruito almeno 30 volte. Ho aggiunto plugin e componenti aggiuntivi lungo il percorso. Ciò indicherebbe che i file .js sono stati aggiunti e popolati nel bucket S3.
Il componente S3 ha funzionato benissimo. Questa è la prima volta che ho avuto problemi con file non migrati su S3.
Cosa posso indagare per capire perché i file non sono stati spostati?
Qualcuno sa cosa potrebbe causare il mancato avvio di after_assets_precompile?
Come test, ho spostato i comandi after_assets_precompile nella sezione dei comandi personalizzati.
run:
- exec: echo "Inizio dei comandi personalizzati"
## Se vuoi impostare l'indirizzo email 'From' per la tua prima registrazione, decommenta e cambia:
## Dopo aver ricevuto la prima email di iscrizione, ri-commenta la riga. Deve essere eseguita solo una volta.
#- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
## comando per proteggere con password il sito web durante il lavoro. rimuovere per la produzione.
- exec:
cd: $home
cmd:
- echo "Inizio dei comandi di precompilazione"
- sudo -E -u discourse bundle exec rake s3:upload_assets
- sudo -E -u discourse bundle exec rake s3:expire_missing_assets
- exec: echo "Fine dei comandi personalizzati"
I comandi hanno funzionato senza problemi. Questo esclude problemi di accesso all’ambiente o di sicurezza.
Il processo di avvio sta saltando il codice after_assets_precompile durante la ricostruzione.
@supermathie - sei fantastico con una vista incredibile. Sei stato in grado di vedere che il codice non era indentato di due spazi. E solo da un singolo snippet rispetto alla sezione più estesa. Grazie.
Ho aggiunto i due spazi e questo ha risolto il problema.
In precedenza avevo eseguito app.yml tramite un controllo yml. Lo strumento di test mi ha detto che il file era strutturalmente valido. Non poteva dirmi che era funzionalmente errato.