Less.js не работает с CDNs? - PullRequest
       6

Less.js не работает с CDNs?

6 голосов
/ 30 января 2012
<link rel="stylesheet/less" href="http://mycdn.s3.amazon.com/css/web/style.less">
<script src="http://mycdn.s3.amazon.com/css/less-1.1.5.min.js"></script>

Когда я помещаю свой файл .less в CDN, он говорит:

XMLHttpRequest не может загрузить http://mycdn.s3.amazonaws.com/media/css/bootstrap/lib/bootstrap.less. Происхождение http://mydomain.com запрещено Access-Control-Allow-Origin.

Почему? Как это исправить? Я не хочу компилировать файлы .css на стороне сервера. Я хочу оставить их на стороне клиента.

Ответы [ 3 ]

4 голосов
/ 01 ноября 2012

Amazon S3 теперь поддерживает перекрестное совместное использование ресурсов: http://aws.typepad.com/aws/2012/08/amazon-s3-cross-origin-resource-sharing.html

Следуйте инструкциям и добавьте опцию конфигурации CORS в корзину, чтобы решить проблему.

4 голосов
/ 30 января 2012

Эта довольно длинная статья из MDN поможет вам понять, что происходит - https://developer.mozilla.org/En/HTTP_access_control

В основном вы столкнулись с моделью междоменной безопасности

Если вы непреклонны в том, что не хотите компилировать CSS на сервере, вы можете попробовать обслуживать его из своего собственного субдомена, т.е. сопоставить субдомен с Amazon CDN, но я не уверен, что это будет исправить вашу проблему.

Я бы на самом деле задал вопрос, почему вы не хотите компилировать серверную часть .CSS, так как это приведет к лучшей производительности для ваших посетителей и позволит вам легко разместить CSS на CDN.

После HTML, CSS является следующим наиболее важным элементом, который должен попасть в браузер, чтобы он мог запускать макет и рендеринг страницы, вставляя JS в микс, который замедляет это (в частности, поскольку JS может блокировать параллельно загружается в некоторых браузерах и блокирует поток пользовательского интерфейса во время его выполнения)

0 голосов
/ 30 января 2012

Если вы хотите исправить междоменный доступ, вам нужно взглянуть на такие вещи, как Cross Origin Resource Sharing (http://en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing), но это поддерживается только современными браузерами или JSONP, но это будет невозможно с вашим CDN, я думаю.

Я должен согласиться с @Andy Davies, почему вы не компилируете .less, так как это решит проблему? это связано с размером файла или вы не можете скомпилировать .less, когда запускаете файлы? В Visual Studio вы можете использовать надстройки, такие как http://www.mindscapehq.com/products/web-workbench, которые будут компилироваться при возникновении изменений.

...