Очередной вопрос про перенос css и js файлов на другой поддомен.

Прошу сразу сильно не пинать и не минусовать, пожалуйста.
Есть:
blogs.example.ru — сам сайт.

Задача:
Сделать так, чтобы css файлы загружались с домена например css-blogs.example.ru
Сдедать так, чтобы js файлы загружались с домена js-blogs.example.ru (Или пофиг, можно даже с тогоже css-blogs.example.ru)

Задача практически решена:
В config.php
$config['head']['default']['css'] = array(
	"http://css-blogs.example.ru/css/style.css?v=1",
	"http://css-blogs.example.ru/css/Roar.css",
	"http://css-blogs.example.ru/css/piechart.css",
	"http://css-blogs.example.ru/css/Autocompleter.css",
	"http://css-blogs.example.ru/css/prettify.css",	
	"http://css-blogs.example.ru/css/vlaCal-v2.1.css",
	"http://css-blogs.example.ru/css/ie6.css?v=1"=>array('browser'=>'IE 6'),
	"http://css-blogs.example.ru/css/ie7.css?v=1"=>array('browser'=>'gte IE 7'),	
	"http://css-blogs.example.ru/css/simple_comments.css"=>array('browser'=>'gt IE 6'),	

Собственно это работает, если:
$config['compress']['css']['merge'] =  false;       // указывает на необходимость слияния файлов по указанным блокам.

Но стоило бы сливать файлы.
Отсюда вопрос, каким образом при настройке $config['compress']['css']['merge'] = true; — сделать загрузку css файлов с другого домена? Что и где нужно подкрутить?

С js делал подобное, но тоже, вышло только при $config['compress']['js']['merge'] = false;

Зарание спасибо.

9 комментариев

avatar
Прошу сразу сильно не пинать и не минусовать, пожалуйста.
вот что порождает система голосования. Боязнь осуждения в виде минусов. Оффтоп конечно, но я за введение системы голосования в виде "+1" или «нравится», без отрицательных вариантов голоса.

Сорри за оффтоп, не выдержал.
avatar
вообще в ЛС или здесь?
avatar
Вообще в ЛС, ну и здесь конечно! Зачем минусы собственно? Топики и так не попадут на главную, даже если рейтинг=0, пусть будет кнопка +1, или «нравится», или «поддержать» и т.п.
avatar
Ещё, есть следующая настройка

$config['path']['static']['root']     = '___path.root.web___';            // чтоб можно было статику засунуть на отдельный сервер


Если прописать
$config['path']['static']['root']     = 'http://css-blogs.example.ru';

css файлы перестают загружаться.
avatar
Проверил щас ещё раз. Пути в виртуалхосте на сервере установлены правильно, но всё так же. Не пойму в чём может быть дело.
avatar
сделайте проще. сжатые файлы css и js в соответствующий поддомен. скопируйте строке и измените в них адрес на нужный вам:
<link rel='stylesheet' type='text/css' href='http://css-blogs.livestreet.ru/templates/cache/new-jquery/4b731f01873a21180f4c5fbbc2401af5.css' />
<script type='text/javascript' src='http://js-blogs.livestreet.ru/templates/cache/new-jquery/1577da14a0b6dfb2d1f1c89398416209.js'></script>

и вставьте в header.tpl вместо:
{$aHtmlHeadFiles.css}
{$aHtmlHeadFiles.js}

и в конфиге отключите сжатие css и js
avatar
Чуть поковырялся, нашёл такое решение:
/engine/modules/viewer/Viewer.class.php
Находим код:

/**
	 * Преобразует абсолютный путь к файлу в WEB-вариант
	 *
	 * @param  string $sFile
	 * @return string
	 */
	protected function GetWebPath($sFile) {
		return str_replace(
			str_replace(DIRECTORY_SEPARATOR,'/',Config::Get('path.root.server')),
			Config::Get('path.root.web'),
			str_replace(DIRECTORY_SEPARATOR,'/',$sFile)
		);
	}

И в этой строке
Config::Get('path.root.web'),
заменяем на
Config::Get('path.static.root'),

в config.php:
$config['path']['static']['root'] = 'http://static.example.com';
avatar
Спасибо, что найдя решение не поленились его записать. Спасибо
avatar
Не за что. С моим решением осталась одна недоработка…

Меняются адреса основных js/css файлов, но
Следующие также и остаётся на своём месте:

<!--[if IE 6]><link rel='stylesheet' type='text/css' href='http://blogs.hub21.ru/templates/skin/whitelite/css/ie6.css?v=1' /><![endif]-->
<!--[if gte IE 7]><link rel='stylesheet' type='text/css' href='http://example.com/templates/skin/whitelite/css/ie7.css?v=1' /><![endif]-->
<!--[if gt IE 6]><link rel='stylesheet' type='text/css' href='http://example.com/templates/skin/whitelite/css/simple_comments.css' /><![endif]-->
<!--[if IE]><script type='text/javascript' src='http://example.com/engine/lib/external/MooTools_1.2/plugs/Piechart/moocanvas.js'></script><![endif]-->


Пока не разбирался как поправить, т.к навалилось много других дел.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.