1

質問のタイトルがお役に立てない場合は、あらかじめお詫び申し上げます。Ubuntu Server 12.04が原因ではないと確信していますが、トリックはどこにあるのか説明できます...

私のウェブサイトは、LESSとそのクライアント側のコンパイルでBootstrapを使用しています(私は開発サイクルにあるので、クライアントでそれを維持したいと思います)。ローカルインスタンス(Ubuntu 12.04を搭載したラップトップ)ではすべて正常に動作しますが、サーバーインスタンス(Ubuntu Server 12.04で実行)から同じWebサイトを要求するとスタイルが生成されません。

どちらも同じmodでApache2.2.22を実行します:alias、auth_basic、authn_file、authz_default、authz_groupfile、authz_host、authz_user、autoindex、cgi、deflate、dir、env、headers、mime、社交、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を使用すると、[ネットワーク]タブにダウンロードされたファイルが2つだけ表示されることがわかります。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: 自分のページとすべてのリソースに1つずつアクセスします(各LESSファイルはアクセス可能で完全です)。[ネットワーク]タブにエラーはありません。サーバーインスタンスでLESSスタイルが処理されないだけです...


私はこの謎について何か提案をします!

4

2 に答える 2

1

私はLESSのデバッグモードを発見したので、開発にless.envを強制することは私を助けました...私のローカルインスタンスでさえホスト名を持っているので、less.envは常に「本番」であり、LESSからのエラーは見られませんでした。

私の間違いは、サブディレクトリまたは相対パスが多すぎるファイルをあまりインポートしていなかったことです。このあいまいな説明で申し訳ありませんが、これは github のこの問題から得たものです: https://github.com/cloudhead/less.js/issues/723

于 2012-06-13T20:45:15.080 に答える
1

私にとって問題は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');

3112 行の後に追加することで、less.env の値を強制することができます。

less.env ='production';

また

less.env ='development';

例:「ubuntuserver」のような開発サーバーのDNSレコードがあり、URL「http://ubuntuserver」を使用してWebサーバーにアクセスする場合

次に、less.env='production'; リソースがローカルであるため、何か問題が発生します。

于 2012-06-13T12:55:33.607 に答える