Je me prépare à déployer une application cakephp sur le web et je veux déplacer tous les assets (img, js, css) vers un CDN pour augmenter les performances. Existe-t-il un moyen de changer globalement l'emplacement que l'assistant HTML lie aux ressources au lieu d'avoir à changer chaque lien.Liens vers des assets sur un cdn avec cakephp
Répondre
J'ai une solution mais il implique de changer le cœur, je sais que je sais ... Je me suis déjà giflé pour le faire ;-)
Nous avions un projet qui a été construit et avait besoin d'un CDN si nous venons d'ajouter un peu de code aux assistants HTML et Javascript pour nous aider.
Dans le fichier /cake/libs/view/helpers/html.php ajouter cette ligne à 360
if (Configure::read('Asset.CDN.enabled')) {
$static_servers = Configure::read('Asset.CDN.static_servers');
if(sizeof($static_servers) > 0) {
shuffle($static_servers);
$url = $static_servers[0].$url;
}
}
et dans le cul /cake/libs/view/helpers/javascript.php ce à la ligne 288
if (Configure::read('Asset.CDN.enabled')) {
$static_servers = Configure::read('Asset.CDN.static_servers');
if(sizeof($static_servers) > 0) {
shuffle($static_servers);
$url = $static_servers[0].$url;
}
}
ensuite dans votre app/fichier config.core.php ajoutez les options de configuration suivantes
// Static File Serving on a CDN
Configure::write('Asset.CDN.enabled', false);
Configure::write('Asset.CDN.static_servers', array('http://static0.yoursite.com.au/', 'http://static1.yoursite.com.au/'));
maintenant, quand vous REFr esh votre page chaque fichier qui est sorti par l'aide html/javascript choisira automatiquement un serveur statique aléatoire. Notez que si vous n'utilisez pas de chemins absolus (y compris les noms de domaine) dans vos fichiers CSS, vous devez vous assurer que les images se trouvent également sur le serveur statique.
Je sais que vous ne devriez pas vraiment jouer dans le noyau, mais parfois c'est vraiment plus facile.
Cheers, Dean
Si les routes et les noms de fichiers persistent, peut-être mod_rewrite pourrait être moins douloureux.
RewriteCond %{REQUEST_URI} ^/css/
RewriteRule ^css/(.*)$ http://cd.yourdomain.com/css/$1 [R=301,L]
cela ne causerait-il pas deux requêtes http? – bicycle
J'ai eu un problème similaire, voici comment je l'ai résolu.
Adding a prefix to every URL in CakePHP
La méthode AppHelper::url()
est l'endroit où vous devriez être intéressé par Récemment je suis tombé
à travers cette aide cool que accomplit cette tâche avec une relative facilité. Il est appelé Asset Host Helper et peut être obtenu auprès de GitHub repository. Ce que j'ai préféré, c'est que vous n'avez pas à vous soucier de changer l'emplacement des ressources dans votre copie de développement (probablement sur localhost) ou dans votre copie de production (sur le CDN). L'assistant s'en occupe automatiquement.
Jetez un coup d'œil - c'est peut-être l'outil que vous recherchez.
Cheers,
m^e
Je sais que c'est une vieille question, mais dans le cas où toutes les personnes à venir tomberez sur dans les rails 3.1 vous pouvez maintenant utiliser
config.action_controller.asset_host = "ATBTracking"
dans config/environments/production
Sauf que ce post parle de CakePHP, pas de Rails ;-) – acorncom
- 1. Des liens vers des informations sur le Ford Sync SDK?
- 2. Liens vers des photos sélectionnées
- 3. puis-je utiliser CDN avec des images?
- 4. CakePHP pagination avec des conditions sur has_many
- 5. Admin, deux liens vers des vues différentes?
- 6. Trouver des liens vers une page
- 7. Liens HTML vers des partages réseau locaux
- 8. écrire une page Web avec des liens vers des fichiers dans un répertoire différent
- 9. Liens vers des actifs sans l'assistant d'actifs
- 10. Liens vers des fichiers externes dans ruby?
- 11. Hébergé Microsoft Ajax sur CDN?
- 12. tornado - transfert d'un fichier vers cdn sans blocage
- 13. Comment utiliser mod_rewrite pour rediriger vers index.php à l'exception des assets?
- 14. Créer des liens vers des nœuds de l'ontologie
- 15. stratégie de déploiement de la poussée automatique vers CDN
- 16. CakePHP URL avec HTML Anchor
- 17. Liens vers une autre page
- 18. Liens vers les URL AJAX
- 19. comment mettent-ils des liens vers des documents photoshop (html)
- 20. Évitez les liens vers libstdC++
- 21. Chrome: Ouvrir des liens vers des documents OpenOffice sur WebDAV directement dans OpenOffice
- 22. Quelqu'un at-il des liens vers des tutoriels javacc?
- 23. carte winforms avec des liens.
- 24. Python Regular Expression pour ajouter des liens vers des urls
- 25. Récupère le nom des dossiers du répertoire Assets
- 26. Liens relatifs avec des URL sans extension
- 27. XULRunner: Empêcher les liens vers des domaines arbitraires
- 28. jqueryui js composants sur google cdn?
- 29. RTF avec des liens dans un RichTextBox WPF
- 30. Liens avec WWW dans Wordpress rediriger vers la page d'accueil
Vous pouvez/devrait injecter l'URL dans 'AppHelper :: url()' (après avoir obtenu l'URL réelle de 'parent :: url()'), alors vous pourriez arrêter de vous gifler. ;-) – deceze