2013-07-08 2 views
1

nous Actuellement ceci:Comment ajouter requête var URL CSS lorsque vous utilisez HtmlHelper

echo $this->Html->css('cake.generic'); 

... qui se traduit par ceci:

<link rel="stylesheet" type="text/css" href="/css/cake.generic.css"> 

Mais ce que je veux est la suivante:

<link rel="stylesheet" type="text/css" href="/css/cake.generic.css?v=1.2.3"> 

(remarquez la var de requête à la fin de la href)

J'ai essayé, mais cela n'a pas fonctionné:

echo $this->Html->css('cake.generic.css?v=1.2.3'); 

... Il produit encore ceci:

<link rel="stylesheet" type="text/css" href="/css/cake.generic.css"> 

Y at-il un moyen d'ajouter requête vars à des ressources URL sans écrire manuellement le plein <link>...</link> dans la mise en page?

Je lis the section in the book et il n'y a aucune mention de la façon de le faire. Post-scriptum: Pourquoi je veux faire cela n'est pas pertinent pour répondre à la question, mais si vous êtes curieux, j'utilise cette stratégie pour éviter les problèmes de mise en cache qui se produisent lorsque les utilisateurs retournent les pages qui ont besoin de CSS mises à jour. L'incrémentation de la requête var oblige le nouveau fichier à charger plutôt que la version mise en cache obsolète.

+0

il ne sera pas aider à résoudre votre problème, mais je tiens à effectuer le même en utilisant un horodatage à la fin de l'URL (même pour JS). De cette façon, je n'ai pas à m'inquiéter si j'ai modifié le var ou pas si que si les forces à télécharger. Mais bien sûr, cela signifie que le fichier n'est jamais mis en cache. Peut également être un horodatage de la dernière date de modification du fichier. –

+1

Quelle version de CakePHP utilisez-vous? Au moins avec CakePHP 2.3.7 votre extrait fonctionne bien. – dhofstet

+0

également testé juste en 2.3 et il fonctionne comme vous avez essayé. –

Répondre

0

Ajouter ce qui suit à votre application dans bootstrap.php

Configure::write('Asset.timestamp', true); 

debug désactiver.

Vous avez maintenant des actifs horodatés.

Si vous voulez en mode débogage aussi, Configure::write('Asset.timestamp', 'force');

+0

Wow. C'est vraiment cool! L'horodatage est-il l'heure actuelle? Ou est-ce à partir de quand le fichier a été modifié? – emersonthis

+0

temps modifié, l'heure actuelle serait assez inutile. – dogmatic69

+0

Parfait! Merci. – emersonthis

Questions connexes