2012-12-14 15 views
9

Non ho trovato la risposta chiara a questa domanda nei documenti. Molti riferimenti dicono semplicemente che "la modifica della versione invalida le risorse". Bene, allora non è lo stesso fatto dal meccanismo di fingerprinting, che genera tag hash basati sul contenuto e sui nomi dei file? Qualcuno sa per cosa è esattamente lo config.assets.version?Cosa fa config.assets.version in Rails?

+2

http://stackoverflow.com/questions/13171647/what-does-changing-config-assets-version-number-do – deefour

risposta

6

config.assets.version è una stringa di opzioni utilizzata nella generazione di hash MD5. Questo può essere cambiato per forzare tutti i file per essere ricompilati. *

Questo può essere utile quando il contenuto di asset non è cambiato, ma si desidera modificare la risposta intestazioni serviti con il bene, ma queste intestazioni vengono memorizzati nella cache da qualche parte come un CDN o browser dell'utente.

La modifica della versione delle risorse consente di rigenerare tutte le risorse con nuovi hash md5, consentendo di offrire le stesse risorse al CDN con nuove intestazioni.

* Da RailsGuides - Configuring Rails Applications

NOTA: A partire dal 20 Maggio 2016, questa funzione non sembra essere stato rotto da tempo https://github.com/rails/sprockets-rails/issues/240. Un'alternativa è modificare il valore di Rails.application.config.assets.prefix.

+0

Speriamo che risolvano presto questo problema. Semplicemente non è un'opzione per chiedere all'utente di assicurarsi di reimpostare la propria cronologia prima di visualizzare il sito per vedere le modifiche lol – bkunzi01

+0

@ bkunzi01 hai visto la mia nota sul metodo alternativo per bloccare le tue risorse con lunghe scadenze? –

+0

Buon consiglio! Quando si esegue questa operazione, è necessario eliminare la cartella public/assets originale o precomporrà automaticamente. in una nuova cartella e evitare le vecchie risorse? – bkunzi01