Compiled asset senza fingerprint

Qualcuno sa come faccio in Rails 4 a far si che durante la
precompilazione
di degli asset ad un determinato file venga conservato il suo nome senza
fingerprint?

esempio ho un file in app/assets/javascripts/application.js, voglio che
dopo assets:precompile questo venga salvato
public/assets/javascripts/application.js

Potrei fare un symlink ad ogni deploy, o fare un enhancement al rake
task
‘assets:precompile’ per farlo in automatico, ma forse c’ modo di
ottenere
lo stesso tramite una configurazione di Rails?

Ciao,

in application.rb:
config.assets.digest = false
con rails 3 c’era anche la task rake:

rake assets:precompile:nodigest

ma stata rimossa in rails 4… qui trovi una versione da usare nel
caso:

2014/1/22 Fabrizio R. [email protected]

scusa, “config.assets.digest = false” va in environements/production.rb
non
in application.rb

2014/1/22 Rocco G. [email protected]

Mmh, suppongo che abbia bisogno della disabilitazione solo per qualche
file
e non per tutti.
La vedo dura senza ridefinire la parte di sprockets che si preoccupa di
gestire il digest.

2014/1/22 Rocco G. [email protected]

Grazie. La conversazione che hai linkato molto interessante.

In Rails 4 se uso digest = false, il risultato che gli helper non usano
pi la fingerprint, che non proprio quello che voglio.

Sto pensando di generare dei symlink dopo assets:precompile come
suggerito
da Jeremy K. ma non ho chiaro come heroku tratti questi file
generati
“al volo”.
Qualcuno ha esperienze simili con Heroku?

2014/1/22 Rocco G. [email protected]

Si infatti stavo guardando dentro Sprockets. Sinceramente non capisco
perchè abbiano tolto la variante non fingerprintata, sarebbe estramente
utile se Rails avesse un Array per definire gli asset che non vuoi
fingerprintare.

2014/1/22 maurizio de magnis [email protected]

E fare la cosa ‘old school’, mettendo il file direttamente in
public/javascripts/ ?

Cosi` l’asset pipeline non ci mette le sue mani e basta.


David N. Welton

http://www.welton.it/davidw/

http://www.dedasys.com/

Rocco, si infatti alla fine prover con quel rake come enhancement di
asset:precompile.
Penso che far un link per invece che la copia del file, mi pare pi
approrpiato
Devo solo fare qualche ricerca per capire se l’ephemeral filesystem di
heroku tollera una soluzione del genere oppure rischio di trovarmi in
qualche situazione in cui quei link non sono spariti.

2014/1/22 Rocco G. [email protected]

Mi era sfuggita la parte “solo alcuni file”…

potresti modificare la task che ti ho linkato togliendo il loop
e passando come argomento il file al quale vuoi togliere il digest.

Se volete farvi quattro risate seguite la issue:

Classico esempio di fissa mentale del core team Rails.

Comunque una soluzione sporca e veloce e
GitHub - alexspeller/non-stupid-digest-assets: Fix the Rails 4 asset pipeline to generate non-digest along with digest assets,
una gem che compila gli assets come Rails 3 (gi solo il nome della gem
fa ride :D).

Ciao,


Matteo L.

provando con la soluzione della copia del file come suggerito da Rocco,
su
Heroku ricevo questo errore:

   rake aborted!
   No such file or directory -

/tmp/build_0ec0019d-2d5e-418e-a843-65d5912bec36/public/assets/manifest.json

/tmp/build_0ec0019d-2d5e-418e-a843-65d5912bec36/vendor/bundle/ruby/2.0.0/gems/sprockets-2.10.1/lib/sprockets/manifest.rb:220:in
`initialize’

/tmp/build_0ec0019d-2d5e-418e-a843-65d5912bec36/vendor/bundle/ruby/2.0.0/gems/sprockets-2.10.1/lib/sprockets/manifest.rb:220:in
`open’

/tmp/build_0ec0019d-2d5e-418e-a843-65d5912bec36/vendor/bundle/ruby/2.0.0/gems/sprockets-2.10.1/lib/sprockets/manifest.rb:220:in
`save’

/tmp/build_0ec0019d-2d5e-418e-a843-65d5912bec36/vendor/bundle/ruby/2.0.0/gems/sprockets-2.10.1/lib/sprockets/manifest.rb:140:in
`compile’

/tmp/build_0ec0019d-2d5e-418e-a843-65d5912bec36/vendor/bundle/ruby/2.0.0/gems/sprockets-rails-2.0.1/lib/sprockets/rails/task.rb:60:in
`block (3 levels) in define’

/tmp/build_0ec0019d-2d5e-418e-a843-65d5912bec36/vendor/bundle/ruby/2.0.0/gems/sprockets-2.10.1/lib/rake/sprocketstask.rb:146:in
`with_logger’

/tmp/build_0ec0019d-2d5e-418e-a843-65d5912bec36/vendor/bundle/ruby/2.0.0/gems/sprockets-rails-2.0.1/lib/sprockets/rails/task.rb:59:in
`block (2 levels) in define’
Tasks: TOP => assets:precompile
(See full trace by running task with --trace)

E il deploy si blocca.

2014/1/23 Matteo L. [email protected]

Bellissimo Matteo! :smiley:

http://rubydrama.com/

Ju


M.Sc. Ju Liu
Twitter: @arkh4m http://twitter.com/arkh4m
Skype: johnny_arkham
Card: http://zerp.ly/ju-liu

Società Cooperativa weLaika
Corso Vigevano 14/B, 10154 Torino (TO), Italy
http://welaika.com - [email protected]

2014/1/23 Matteo L. [email protected]

@ David, ci sono diversi client che puntano al percorso del file dentro
/assets, non vorrei costringeri a cambiare path.

E pushando una seconda volta dopo un rake assets:clobber :

rake aborted!
No such file or directory -
/tmp/build_84a9e3ee-4466-46e7-a020-5ac0df92a5c5/public/assets/application.js

/tmp/build_84a9e3ee-4466-46e7-a020-5ac0df92a5c5/lib/tasks/production.rake:24:in
`block (3 levels) in <top (required)>’

/tmp/build_84a9e3ee-4466-46e7-a020-5ac0df92a5c5/lib/tasks/production.rake:9:in
`each’

/tmp/build_84a9e3ee-4466-46e7-a020-5ac0df92a5c5/lib/tasks/production.rake:9:in
`block (2 levels) in <top (required)>’

/tmp/build_84a9e3ee-4466-46e7-a020-5ac0df92a5c5/lib/tasks/production.rake:43:in
`block in <top (required)>’
Tasks: TOP => app:nonfingerprint_assets
(See full trace by running task with --trace)

2014/1/23 Ju Liu [email protected]

Il giorno 23/gen/2014, alle ore 10:38, Ju Liu [email protected] ha
scritto:

Bellissimo Matteo! :smiley:

http://rubydrama.com/

Scusa ma mi stai prendendo per il culo? Complimenti!


Matteo L.

Il giorno 23/gen/2014, alle ore 15:17, Ju Liu [email protected] ha
scritto:

2014/1/23 Matteo L. [email protected]

Scusa ma mi stai prendendo per il culo?

Affatto! Me la sono proprio spassata a leggere il mega flame su github :slight_smile:

Chiedo umilmente perdono Su questa ML non riesco mai a riconoscere i
troll :frowning:


Matteo L.

2014/1/23 Matteo L. [email protected]

Scusa ma mi stai prendendo per il culo?

Affatto! Me la sono proprio spassata a leggere il mega flame su github
:slight_smile: