Проблем от страната на 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="/bg/bundles/mywebsite/css/main.less" type="text/css" rel="stylesheet/less">
        <link href="/bg/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 виждам, че само два основни файла се показват като изтеглени в раздела Мрежа. 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="/bg/bundles/mywebsite/css/main.less" type="text/css" rel="stylesheet/less">
        <link href="/bg/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 не се обработва на моето сървърно копие...


Приемам всякакви предложения относно тази енигма!


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 запис за вашия dev сървър като "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 essayé avec :80 dans ce cas force less.env ='production'; - 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