Проблема на стороне клиента LessCss в Ubuntu Server 12.04 с Twitter Bootstrap

Заранее прошу прощения, если название вопроса может быть неудобным. Я почти уверен, что Ubuntu Server 12.04 не является причиной, но я могу объяснить, в чем заключается хитрость...

Мой веб-сайт использует Bootstrap с LESS и его компиляцию на стороне клиента (я нахожусь в цикле разработки, поэтому хочу оставить его на клиенте). Все отлично работает на моем локальном экземпляре (ноутбук с Ubuntu 12.04), но стиль не генерируется при запросе того же веб-сайта с моего экземпляра сервера (работающего на Ubuntu Server 12.04).

Оба запускают Apache 2.2.22 с одинаковыми модами: alias, auth_basic, authn_file, authz_default, authz_groupfile, authz_host, authz_user, autoindex, cgi, deflate, dir, env, headers, mime, negotiation, php5, reqtimeout, rewrite, setenvif, ssl. , положение дел.


Что я получаю от своего локального экземпляра (Ubuntu 12.04) Прекрасно работает!

<!DOCTYPE html>
<html lang="fr">
    <head>
        <meta charset="utf-8">
        <title>My website</title>
        <meta content="width=device-width, initial-scale=1.0" name="viewport">
        <meta content="" name="description">
        <meta content="alterphp" name="author">
        <link href="/bundles/mywebsite/css/main.less" type="text/css" rel="stylesheet/less">
        <link href="/bootstrap/less/responsive-768px-979px.less" type="text/css" rel="stylesheet/less">
        <script type="text/javascript" src="/jquery/jquery.js"> ... </script>
        <script type="text/javascript" src="/jquery.form.js"> ... </script>
        <script type="text/javascript" src="/bundles/mywebsite/js/less-1.3.0.min.js"> ... </script>
        <style id="less:bundles-mywebsite-css-main" type="text/css" media="screen"> **Style is well processed** </style>
        <style id="less:error-message" type="text/css" media="screen"> ... </script>
    </head>
    <body>
        ...
    </body>
</html>

С помощью FireBug я вижу, что только два основных файла less отображаются как загруженные на вкладке «Сеть». main.less импортирует намного меньше файлов, которые обрабатываются в ответе main.less.


То, что я получаю от своего экземпляра сервера (Ubuntu Server 12.04), не работает!

<!DOCTYPE html>
<html lang="fr">
    <head>
        <meta charset="utf-8">
        <title>My website</title>
        <meta content="width=device-width, initial-scale=1.0" name="viewport">
        <meta content="" name="description">
        <meta content="alterphp" name="author">
        <link href="/bundles/mywebsite/css/main.less" type="text/css" rel="stylesheet/less">
        <link href="/bootstrap/less/responsive-768px-979px.less" type="text/css" rel="stylesheet/less">
        <script type="text/javascript" src="/jquery/jquery.js"> ... </script>
        <script type="text/javascript" src="/jquery.form.js"> ... </script>
        <script type="text/javascript" src="/bundles/mywebsite/js/less-1.3.0.min.js"> ... </script>
        <style id="less:error-message" type="text/css" media="screen"> ... </script>
    </head>
    <body>
        ...
    </body>
</html>

Никакой стиль не обрабатывается из main.less ... С помощью FireBug я вижу, что все файлы меньшего размера, импортированные из main.less, отображаются как загруженные на вкладке «Сеть».

Редактировать 1: я открываю свои страницы и все ресурсы один за другим (каждый файл LESS доступен и завершен). У меня нет ошибки на вкладке «Сеть», просто стиль LESS не обрабатывается на моем экземпляре сервера...


Я принимаю любые предложения по поводу этой загадки!


person AlterPHP    schedule 10.06.2012    source источник
comment
Можете ли вы попробовать добавить: 80 в конце или URL (например: localhost:80). Без награды это точно значок Tumbleweed. Бон Кураж.   -  person baptme    schedule 12.06.2012
comment
Можете ли вы перейти к ресурсам (файлам LESS/CSS) вручную? Просто убедитесь, что это не проблема абсолютного/относительного пути. Например. localhost/somepage.php против qaserver/myApp/somepage.php   -  person Terry    schedule 12.06.2012
comment
Спасибо за предложения. Я отредактировал свой вопрос, чтобы завершить. Каждый ресурс (файлы php и LESS доступны.   -  person AlterPHP    schedule 13.06.2012


Ответы (2)


Для меня проблема исходит от less.js

https://github.com/cloudhead/less.js/blob/master/dist/less-1.3.0.js

Посмотрите на строки с 3107 по 3112.

less.env = less.env || (location.hostname == '127.0.0.1' ||
                    location.hostname == '0.0.0.0' ||
                    location.hostname == 'localhost' ||
                    location.port.length > 0 ||
                    isFileProtocol ? 'development'
                                                     : 'production');

Вы можете попытаться принудительно установить значение less.env, добавив после строки 3112.

less.env ='production';

or

less.env ='development';

Например: если у вас есть DNS-запись для вашего сервера разработки, такая как «ubuntuserver», и вы получаете доступ к веб-серверу, используя URL-адрес «http://ubuntuserver»,

Затем less.env='production'; и поскольку ресурсы локальные, что-то пойдет не так.

person baptme    schedule 13.06.2012
comment
сегодня вечером попробую! Мой сервер разработки не имеет DNS-записи, но имеет имя хоста, поэтому он может выполнять эту работу! Но я попытался запросить его с портом: 80 в URL-адресе, и фрагмент кода, который вы показываете, похоже, обрабатывает это как среду разработки, но, возможно, браузеры игнорируют: 80, поскольку он используется по умолчанию... Я не могу дождаться попытки! - person AlterPHP; 13.06.2012
comment
si tu as essée avec :80 dans ce cas force less.env = 'производство'; - person baptme; 13.06.2012

Принудительный перевод less.env в development помог мне, когда я обнаружил режим отладки LESS... Даже у моего локального экземпляра есть имя хоста, поэтому less.env всегда был «производственным» и я никогда не видел никаких ошибок от LESS.

Моя ошибка заключалась в том, что я импортировал меньше файлов со слишком большим количеством подкаталогов или относительных путей. Извините за это расплывчатое объяснение, но это то, что я получил от этой проблемы на github: https://github.com/cloudhead/less.js/issues/723

person AlterPHP    schedule 13.06.2012