3

ページのヘッダー/フッター部分が再利用されるためrequire、メインファイルとは別のファイルに配置される、かなり典型的なPHPプロジェクトがあります。

ただし、これは、ファイルが開始タグ_header.phpで終了することを意味します<article>(これは、の先頭で「閉じられます」_footer.php)。

問題は、htmlminこれを私の側のエラーとして解釈し、終了タグ、タグを に追加articleすることbodyです。それを「無効」にするにはどうすればよいですか?grunt-contrib-htmlminhtml-minifierの GitHub ページを読んだことがありますが、あまり運がありませんでした。html_header.php

私のタスク設定

htmlmin: {                                      
    dist: {                                     
        options: {   
            minifyJS: true,
            removeComments: true,
            collapseWhitespace: true
        },
        files: {                                
            'staging/index.php': 'index.php',
            'staging/support/index.php': 'support/index.php',
            'staging/inc/_header.php': 'inc/_header.php',
            'staging/inc/_footer.php': 'inc/_footer.php'
        }
    }
}

minifyJS: true無視されているように見える理由も教えていただければボーナス ブラウニー ポイント

ありがとう。

4

3 に答える 3

1

1つの解決策は、理想的ではないことはわかっていますが、マークアップを次のようにラップして無視コメントを使用することです。

<!-- htmlmin:ignore -->

https://github.com/kangax/html-minifier#ignoring-chunks-of-markup

または、HTML Clean などの別のツールを使用することもできます。

https://www.npmjs.com/package/grunt-htmlclean

于 2015-02-19T17:44:09.957 に答える
0

解決策を探し、ドキュメントを調べ、いくつかのブログ投稿を読みましたが、現時点ではあなたが求めていることは不可能であることがわかりました。

さらに、誰かがGitHubで同様の質問をしましたが、それは答えで閉じられました:

ええと、これについて私たちができることはあまりないと思います.minifierは本当にコンテキストを認識する必要があり、htmlの任意の部分的なチャンクで何をすべきか理解できないからです。

したがって、これは不可能であり、(おそらく)将来実装される予定はありません

その意図は、ユーザーが「正しくないコード」を残すことを明確に防ぐことであるため、(grunt-contrib-htmlmin を使用して)そのプロセスをブロックすることはできません

その可能性を提供する他の同等のうなり声プラグインは見つかりませんでした。

最後に、「解決策」は2つしか残っていないと思います。

1) PHP フラグメントを縮小しない;

2)コードを複数の部分に分割し、タグが閉じられていない部分のみを縮小し、新しい php ファイルでgrunt-include-replaceまたは同様のプラグインを使用してすべてを再結合します。

于 2014-07-15T23:22:26.930 に答える