У меня есть решение, но оно включает изменение ядра, я знаю, что знаю ... Я уже ударил себя за это; -)
У нас был проект, который был построен, а затем нам понадобился CDN, поэтому мы просто добавили немного кода к помощникам HTML и Javascript, чтобы помочь нам.
В файле /cake/libs/view/helpers/html.php добавьте это в строку 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;
}
}
и в /cake/libs/view/helpers/javascript.php задницу это в строке 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;
}
}
Затем в вашем файле app / config.core.php просто добавьте следующие параметры конфигурации
// 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/'));
Теперь, когда вы обновляете свою страницу, каждый файл, который выводится через помощник html / javascript, автоматически выбирает случайный статический сервер.
Обратите внимание, что если вы не используете абсолютные пути (включая доменные имена) в своих файлах CSS, вам необходимо убедиться, что изображения также находятся на статическом сервере.
Я знаю, что вам не стоит поиграть в ядре, но иногда это действительно просто проще.
Ура,
Декан