Yii2资源包:如何设置标头?

3

我正在使用yii2的Asset Bundles。但是我没有找到影响每个文件(css和js)http标头的方法。例如,我想设置缓存。对于控制器,我会这样做:

'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');
            },

但是如何为资产/资产包做到这一点呢?
3个回答

1
将以下内容放入您的web/文件夹下的.htaccess文件中,以设置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>

1
你真的做不到那个。
你的CSS和JS文件是由你的Web服务器(无论你使用哪一个)提供的。资产和捆绑包是一种机制,它从Web服务器无法访问的文件夹中获取文件(例如/assets/),并将它们放置到Web服务器可以访问的文件夹中,如/web/assets/xxxxxxx,然后通过http://<your_domain>/assets/xxxxxxx可见。
这些文件是直接提供的,Yii没有任何参与。因此,如果你需要特定的头信息(用于缓存控制或其他原因),应该在你的Web服务器配置中完成。

0
class PostController extends Controller
{
    public function behaviors()
    {
        return [
            [
                'class'      => 'yii\filters\PageCache',
                'only'       => ['view', 'short'],      // actions
                'duration'   => 60,
                'enabled'    => !YII_DEBUG,
                'variations' => [
                    HTTPS_ON,
                    $_SERVER['SERVER_NAME'],
                 ]
            ]
       ];
   }
  ...

或者文档的网址 https://www.yiiframework.com/doc/api/2.0/yii-filters-pagecache


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接