2015-01-30 7 views
3

Я использую Asset Bundles of yii2. Но я не могу найти влияние на http-заголовок каждого файла (css и js). Например, я хочу установить кеш. Для контроллеров, которые я делаю это:Yii2 Asset Bundle: Как установить заголовки?

'class' => 'yii\filters\HttpCache', 
      'only' => ['index', 'view'], 
      'cacheControlHeader' => 'public, max-age=3600', 
      'lastModified' => function ($action, $params) { 
       $q = new \yii\db\Query(); 
       return $q->from('user')->max('updated_at'); 
      }, 

Но как сделать это для активов/Asset Связки?

ответ

1

Вы не можете этого сделать.

Ваши файлы CSS и JS обслуживаются вашим веб-сервером (в зависимости от того, который вы используете). Активы и пакеты - это механизм, который принимает файлы из папки, недоступной веб-серверу (например, /assets/), и помещает их в папку, доступную веб-серверу, например /web/assets/xxxxxxx, которая затем отображается через http://<your_domain>/assets/xxxxxxx.

Файлы подаются непосредственно без участия Yii. Поэтому, если вам нужны определенные заголовки (для управления кешем или по любой другой причине), ваша конфигурация веб-сервера - это то, где это должно быть сделано.

1

Поместите это в .htaccess файл в папку web/ установить Expires заголовки для кэширования JS, CSS, изображения и т.д.

## EXPIRES CACHING ## 
<IfModule mod_expires.c> 
    ExpiresActive On 
    ExpiresDefault "access plus 1 month" 
    #ExpiresByType image/jpg "access plus 1 year" 
    #ExpiresByType image/jpeg "access plus 1 year" 
    #ExpiresByType image/gif "access plus 1 year" 
    #ExpiresByType image/png "access plus 1 year" 
    #ExpiresByType text/css "access plus 1 month" 
    #ExpiresByType application/pdf "access plus 1 month" 
    #ExpiresByType application/javascript "access plus 1 month" 
    #ExpiresByType text/javascript "access plus 1 month" 
    #ExpiresByType text/x-javascript "access plus 1 month" 
    #ExpiresByType application/x-shockwave-flash "access plus 1 month" 
    #ExpiresByType image/x-icon "access plus 1 week" 
</IfModule> 
Смежные вопросы