1

デフォルトの JSmin ではなく、minify PHPでYUI コンプレッサーを使用したいと考えています。誰もこれを設定した経験がありますか?

現在、groupsConfig.php を使用して JS を結合しています。

return array(
    'jsAll'  => array('//contenido/themes/bam/assets/js/jquery.js', '//contenido/themes/bam/assets/js/modernizr.js','//contenido/themes/bam/assets/js/imgpreload.js', '//contenido/themes/bam/assets/js/imgpreload.js', '//contenido/themes/bam/assets/js/history.js','//contenido/themes/bam/assets/js/ajaxify.js', '//contenido/themes/bam/assets/js/isotope.js'),
    'jsHome' => array('//contenido/themes/bam/assets/js/easing.js','//contenido/themes/bam/assets/js/scrollable.js', '//contenido/themes/bam/assets/js/home.js'),
    'cssAll' => array('//contenido/themes/bam/bam.css'),
);

ホームページにあるように:

Douglas Crockford の JSMin ライブラリとカスタム クラスの拡張ポートを使用して、CSS と HTML を縮小します。

config.php に次のコードがありますが、結合された js ファイルを表示しようとすると 500 エラーが発生します。

function yuiJs($js) {
    require_once '/lib/Minify/YUICompressor.php'; 
    Minify_YUICompressor::$jarFile = '/lib/yuicompressor-2.4.2.jar'; 
    Minify_YUICompressor::$tempDir = '/temp'; 
    return Minify_YUICompressor::minifyJs($js); 
}
$min_serveOptions['minifiers']['application/x-javascript'] = 'yuiJs';

また、lib/Minify/YUICompressor.php には設定が必要な行がいくつかあるようで、正しく行っているかどうかはわかりません。

class Minify_YUICompressor {

    /**
     * Filepath of the YUI Compressor jar file. This must be set before
     * calling minifyJs() or minifyCss().
     *
     * @var string
     */
    public static $jarFile = '../yuicompressor-2.4.2.jar';

    /**
     * Writable temp directory. This must be set before calling minifyJs()
     * or minifyCss().
     *
     * @var string
     */
    public static $tempDir = '../../temp/';

    /**
     * Filepath of "java" executable (may be needed if not in shell's PATH)
     *
     * @var string
     */
    public static $javaExecutable = 'java';
4

1 に答える 1

0

Windowsでも同じ問題がありました。yui コンプレッサーを実行するには、jar ファイルを実行可能にする必要があるようです。そのため、YUICompressor.php から実行可能なチェックを削除する必要があります。

#132 


private static function _prepare()
    {
        if (! is_file(self::$jarFile)) {
            throw new Exception('Minify_YUICompressor : $jarFile('.self::$jarFile.') is not a valid file.');
        }
//         if (! is_executable(self::$jarFile)) {
//             throw new Exception('Minify_YUICompressor : $jarFile('.self::$jarFile.') is not executable.');
//         }
        if (! is_dir(self::$tempDir)) {
            throw new Exception('Minify_YUICompressor : $tempDir('.self::$tempDir.') is not a valid direcotry.');
        }
        if (! is_writable(self::$tempDir)) {
            throw new Exception('Minify_YUICompressor : $tempDir('.self::$tempDir.') is not writable.');
        }
    }

そしてそれはうまくいきます。

于 2013-01-03T06:36:47.237 に答える