0

css と js を縮小して結合する Assets クラスに問題があります。問題なく動作するように見えるこのプラグイン広告があります:

class Plugin_Theme_Assets extends Plugin
{
    /**
    * combine and insert multiple js files
    *
    * usage:
    * { theme_assets:js_files files="file1.js,file2.js" }
    */
    function js_files()
    {
        $files = $this->attribute('files');
        preg_match_all('/[\w-\.]+\.js/i', $files, $files_a);
        foreach($files_a[0] as $file)
        {
            Asset::js($file);
        }
        return Asset::render_js();
    }

    /**
    * combine and insert multiple css files
    *
    * usage:
    * { theme_assets:css_files files="file1.css,file2.css" }
    */
    function css_files()
    {
        $files = $this->attribute('files');
        preg_match_all('/[\w-\.]+\.css/i', $files, $files_a);
        foreach($files_a[0] as $file)
        {
            Asset::css($file);
        }
        return Asset::render_css();
    }
}

これは私の .htaccess ファイルです。SetEnv のコメントを外してください。

# Multiple Environment config
# Set this to development, staging or production
  SetEnv PYRO_ENV production

<IfModule mod_rewrite.c>

    # Make sure directory listing is disabled
    Options +FollowSymLinks -Indexes
    RewriteEngine on

    # NOTICE: If you get a 404 play with combinations of the following commented out lines
    #AllowOverride All
    RewriteBase /

    # Restrict your site to only one domain
    # !important USE ONLY ONE OPTION

    # Option 1: To rewrite "www.domain.com -> domain.com" uncomment the following lines.
    RewriteCond %{HTTPS} !=on
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

    # Option 2: To rewrite "domain.com -> www.domain.com" uncomment the following lines.
    #RewriteCond %{HTTPS} !=on
    #RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
    #RewriteCond %{HTTP_HOST} (.+)$ [NC]
    #RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]

    # Remove index.php from URL
    #RewriteCond %{HTTP:X-Requested-With}   !^XMLHttpRequest$
    #RewriteCond %{THE_REQUEST}             ^[^/]*/index\.php [NC]
    #RewriteRule ^index\.php(.*)$           $1 [R=301,NS,L]

    # Keep people out of codeigniter directory and Git/Mercurial data
    RedirectMatch 403 ^/(system\/cms\/cache|system\/codeigniter|\.git|\.hg).*$

    # Send request via index.php (again, not if its a real file or folder)
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    <IfModule mod_php5.c>
        RewriteRule ^(.*)$ index.php/$1 [L]
    </IfModule>

    <IfModule !mod_php5.c>
        RewriteRule ^(.*)$ index.php?/$1 [L]
    </IfModule>

</IfModule>

したがって、私が正しければ、PYRO_ENV は現在「生産」です。

ページを更新すると、css と js ファイルが縮小されず、1 つのファイルに結合されません...ここでプラグインが返すもの

<link href="http://example:8888/addons/default/themes/mytheme/css/nivo-slider.css" rel="stylesheet" type="text/css" />
<link href="http://example:8888/addons/default/themes/mytheme/css/default.css" rel="stylesheet" type="text/css" />

手伝ってくれませんか?

4

3 に答える 3

3

ホスティングSetEnvで .htaccess が許可されない場合は、書き換えルールを使用して環境変数を送信できます。

RewriteCond %{HTTP_HOST} ^local.yoursite.com$
RewriteRule (.*) $1 [E=PYRO_ENV:development]

RewriteCond %{HTTP_HOST} ^beta.yoursite.com$
RewriteRule (.*) $1 [E=PYRO_ENV:staging]

RewriteCond %{HTTP_HOST} ^yoursite.com$
RewriteRule (.*) $1 [E=PYRO_ENV:production]

アセットの縮小と結合は、運用システムまたはステージング システムでデフォルトで行われます。開発環境では、開発/デバッグの目的で縮小と結合は行われません。system/cms/config/asset.phpテスト目的でこれをオーバーライドできます。

于 2012-11-03T18:07:44.673 に答える
1

これは自分で書いたプラグインですよね?{ theme_assets:css_files files="file1.css,file2.css" }カスタムプラグインをまったく必要とせずにこれを実行できるのに、ドキュメントで人々が使用することを提案している理由がわかりません。

{{ asset:css file="file1.css" }}
{{ asset:css file="file2.css" }}
{{ asset:render }}

(また、環境を正しく設定すれば動作するはずです (テスト用に/system/cms/config/asset.phpを変更することもできます)。

于 2012-08-15T22:05:17.313 に答える
0

SetEnv問題は私のホスティングでした.htaccessで使用することはできません

于 2012-08-17T14:06:27.373 に答える