Je suis un peu confus, car il semble que le fichier application.css s’inclus deux fois, une fois quand il répertorie les ressources du manifeste et un cache de celui-ci. Ainsi, lorsque je supprime un fichier individuel, il semble toujours rester en vie dans le fichier application.css.
/*
*= require Twitter/bootstrap
*= require_self
*= require_tree ./common
*= require_tree ./helpers
*/
Qui fonctionne comme prévu et affiche en mode dev tous les fichiers individuels pertinents
# Do not compress assets
config.assets.compress = false
# Expands the lines which load the assets
config.assets.debug = true
<link href="/assets/Twitter/bootstrap.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<link href="/assets/application.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<link href="/assets/common/announcement.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<link href="/assets/common/button.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<Blah blah>
Cela devrait être vide? Depuis tout ce que j'ai dans mon fichier application.css est le manifeste et aucun css réel, mais au lieu de cela, je reçois tout mon code concaténé de 106kb de long.
IE si je supprime un fichier du répertoire commun, il ne disparaît pas. Il n'est plus répertorié dans la sortie mais le fichier css apparaît toujours à partir du fichier application.css.
J'ai eu un problème comme ça avant. Cela était dû au fait que j'avais précompilé les actifs qu'il était après le fichier applcation.css dans le dossier public ainsi que dans le répertoire apps. Je ne sais pas comment le réparer pour que cela ne se produise plus en mode dev, mais si vous supprimez votre répertoire /public/assets
, vous devriez le réparer.
Vérifiez et voyez si vous avez un dossier public/assets, si vous le faites et qu'il est plein, c'est probablement pourquoi vous voyez double.
Il y a actuellement (2012-09-24) un bogue dans Rails/Sprockets qui empêche la détection correcte des fichiers importés.
Ceci devrait être corrigé dans Rails 3.2.9 et versions ultérieures, mais entre-temps, vous pouvez le contourner comme suit:
Vous devriez maintenant voir le bon css.
Vous voudrez peut-être regarder
https://stackoverflow.com/a/7854902/686460
"L'ajout de config.serve_static_assets = false à development.rb empêchera le chargement de fichiers depuis/public/assets"
Cela l'a fait pour moi.
La solution de @ Agustin le fait pour moi, mais voici quelques choses à faire:
Supprimer tout dans/tmp/cache/assets
Ajoutez config.serve_static_assets = false
à development.rb ou test.rb (crédits à @Agustin)
Redémarrez votre serveur.
Assurez-vous que votre application.js/.css n'est pas mis en cache dans votre navigateur. Allez à http://localhost:3000/assets/application.js?body=1
et appuyez sur ctrl + f5 pour forcer l’actualisation (vous pouvez également ajouter un paramètre de randomisation à la fin: http://localhost:3000/assets/application.js?body=1&rnd=12343
Si vous obtenez autre chose et que ctrl + f5 n’a toujours pas aidé, vous devez effacer votre navigateur cache.
Ignorer l'une de ces étapes a renvoyé un application.js/.css en cache en conflit avec mes mises à jour dans des fichiers uniques.
La meilleure façon, qui a fonctionné pour moi, est de supprimer le contenu du répertoire tmp/cache/* ...
La chose qui a fonctionné pour nous a été mise 'config.assets.debug = false'
Cela ne définit plus le CSS inclus HTML comme suit: href = "/ assets/bootstrap-new.css? Body = 1", mais plutôt comme href = "/ assets/bootstrap-new.css", ce qui était, je pense, le problème .
J'ai eu le même problème. Malgré la suppression de tmp/cache et de public/assets, minified application.css était toujours mis en cache et servi de quelque part et mes modifications apportées à des fichiers CSS individuels n'étaient pas servies.
Cela a fonctionné pour moi: Dans application.css, supprimez la ligne *= require_self
redémarrer le serveur
cela semble supprimer le cache et si vous cliquez sur application.css dans la source de votre navigateur, vous ne verrez plus la version réduite
replacer le *= require_self
dans le fichier et poursuivre le développement.
Je sais que cette question est ancienne, mais un correctif qui a fonctionné pour moi est que nginx était mandaté par proxy vers mon environnement de développement et que la configuration comportait un bloc location ~ ^/(assets)/
. Faites un commentaire ou essayez de redémarrer nginx pour invalider le cache. Si vous développez, vous voudrez probablement simplement le commenter.
J'ai perdu beaucoup trop de temps à résoudre ce problème jusqu'à ce que je m'en souvienne.
Une dernière étape était nécessaire pour moi, mais je l’ai réparée. Voici ce que j'ai fait:
Ensuite, j'ai rafraîchi mon écran dans Google Chrome et IL N'A PAS ENCORE DID PAS FONCTIONNÉ Donc, j'ai lancé Firefox et le tour est joué, cela fonctionnait réellement. Cela signifie que Chrome mettait en cache les anciens fichiers dans le navigateur. Alors, j'ai effacé le cache du navigateur dans Chrome, et cela a fonctionné!