2

圧縮されたjsとcssを次のようなものに出力するためにasseticが必要です。 v2.3.1/css/whatever.css

現在、これは私が本番用にcssとjsをダンプする方法です:$ php app/console assetic:dump --env=prod --no-debug。しかし、それらはバージョンなしでcss/とjs/にダンプされます。

私はこれを読みましたが、css / jsではなく、画像のみを参照しているようです。

これを行う重要な理由は、キャッシュの無効化/無効化です。

4

3 に答える 3

3

はい、既知の問題です...本番ワークフローでは、bin/vendorsスクリプトにこのようなブロックが含まれることになりました。

if (in_array('--env=dev', $argv)) {
    system(sprintf('%s %s assets:install --symlink %s', $interpreter, escapeshellarg($rootDir . '/app/console'), escapeshellarg($rootDir . '/web/')));
    system(sprintf('%s %s assetic:dump --env=dev', $interpreter, escapeshellarg($rootDir . '/app/console')));
    system(sprintf('%s %s myVendor:assets:install --symlink ', $interpreter, escapeshellarg($rootDir . '/app/console')));
} else {
    system(sprintf('%s %s assets:install %s', $interpreter, escapeshellarg($rootDir . '/app/console'), escapeshellarg($rootDir . '/web/')));
    system(sprintf('%s %s assetic:dump --env=prod --no-debug', $interpreter, escapeshellarg($rootDir . '/app/console')));
    system(sprintf('%s %s myVendor:assets:install ', $interpreter, escapeshellarg($rootDir . '/app/console')));
}

ご覧のとおり、コンソールコマンドを定義しました。このコマンドは、Symfonyのアセットをインストールしてダンプした後、アセットをWebフォルダーにインストールします。スクリプトでは、MyVendorCommand次のようにします。

$version = $this->getContainer()->getParameter('your_version_parameter');
$assetsInstallCommand = $this->getApplication()->find('assets:install');

$commandOptions = $input->getOptions();

$assetsInstallArguments = array(
    'command' => 'assets:install',
    'target' => 'web/version-' . $version,
    '--symlink' => $commandOptions['symlink']
);

$assetsInstallInput = new ArrayInput($assetsInstallArguments);
$returnCode = $assetsInstallCommand->run($assetsInstallInput, $output);
于 2012-08-10T05:44:24.713 に答える
1

ホー、Symfony2の大きなバグです!誰かがそれを報告したかどうかはわかりません!

私の解決策は、Nginx構成にエイリアスを追加することでしたが、あなたはdefです。よりクリーンでより良い。

于 2012-08-11T10:51:24.030 に答える
0

私の回避策は、実際のファイルを提供するために.htaccessファイルにrewriteRuleを作成することですが、バージョン番号を含む完全なURLを受け入れます。このようなもの ...

app / config / config.yml

[...]
engines: ['twig']
assets_version: 20140523  # numeric version
assets_version_format: "assets-%%2$s/%%1$s"
[...]

web / .htaccess

[...]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^assets-([0-9]*)/(.*)$ ./$2 [L]
[...]
于 2014-05-26T16:29:48.080 に答える