Я хочу разделить свой веб-сайт по разным серверам и использовать для этого субдомены.
xttp: //site.com будет обслуживать основной файл php
xttp: //static.site.com будет обслуживать CSS и JS
xttp: //content.site.com будет обслуживать изображения и такие
(xttp, чтобы форма стека переполнения не думала, что это URL)
Почему, читайте ниже.
Однако я сталкиваюсь с проблемой, когда пытаюсь получить доступ через javascript к любому из правил css. NS_ERROR_DOM_SECURITY_ERR, чтобы быть точным. Это относительно недавняя мера безопасности, связанная с защитой от междоменных сценариев.
В прошлом были меры по исправлению ситуации, в том числе просто отключение этой защиты. Это больше не работает.
Мой вопрос:
Есть ли в любом случае доступ к нормально загруженному правилу css через javascript, если он находится в другом домене, чем главная страница?
JavaScript:
MUI.getCSSRule=function(selector){
for(var ii=0;ii<document.styleSheets.length;ii++){
var mysheet=document.styleSheets[ii];
var myrules=mysheet.cssRules?mysheet.cssRules:mysheet.rules;
for(i=0;i<myrules.length;i++){
if(myrules[i].selectorText==selector){
return myrules[i]
}
}
}
return false
};
JavaScript и CSS загружаются из HTML с абсолютными путями
и URL сайта "http://site.com"
Оба домена полностью находятся под моим контролем, но они являются отдельными машинами (на данный момент виртуальными, но, если это возможно, на производстве они могут даже не находиться в одном и том же месте)
Перефразируя вопрос:
Есть ли способ сообщить Firefox и другим браузерам, что он должен рассматривать определенные домены как одинаковые, даже если доменные имена разные?
Почему? Таким образом, я могу легко использовать разные серверы с их собственной конфигурацией, оптимизированной под их задачу. Быстрая машина для php, простая для обслуживания статичных вещей, большая машина для контента.
Почему? Расходы. Статический сервер обычно не нуждается в защите от загрузки файлов. В нем мало контента, поэтому нет необходимости в дорогом массиве. Просто загрузите его в память и подавайте оттуда. Память тоже может быть ограничена, попробуйте. Сервер PHP, по крайней мере, в моем случае, как правило, будет нуждаться в большом количестве памяти, избыточном хранилище, расширенном ведении журнала. Контент-серверу потребуются большие объемы хранилища и огромная пропускная способность, но относительно небольшая мощность процессора. Различные требования к оборудованию / хостингу для каждого. Настройка каждого из них не только повышает производительность, но и снижает стоимость хостинга, по крайней мере, для меня это одна из самых больших затрат на управление веб-сайтом.