【问题标题】:Symfony2 asset resources from static domain or subdomain来自静态域或子域的 Symfony2 资产资源
【发布时间】:2012-08-27 01:48:19
【问题描述】:

我正在尝试优化我的项目以避免发送带有静态资源(即:图像、脚本、样式表等)的 cookie。我的方法是创建一个 static.my-domain.com 域,以便从那里提供所有静态资源,而不使用 cookie。

如何使用 Symfony2 使用资产从该域加载资源?

我正在使用 Symfony 2.1 RC2

【问题讨论】:

    标签: php caching symfony twig symfony-2.1


    【解决方案1】:

    我添加了一些 twig 全局变量来处理这个问题

    # config.yml
    framework:
        templating:
            engines: ['twig']
            assets_version: 'dev'
            assets_version_format: "%%2$s/%%1$s"
        session:
            cookie_domain:        %session.cookie_domain%
    twig:
        globals:
            assets_version: dev
            static_assets_base_url: %static_assets_base_url%
            static_images_base_url: %static_images_base_url%
            static_image: %static_images_base_url%/dev/ # I didn't know how to reference the assets_version, so this is the same value
            static_content: %static_images_base_url%/
    
    # parameters.yml
    parameters:
        session.cookie_domain: .myapp.dev
        static_assets_base_url: http://myapp-static.dev
        static_images_base_url: http://myapp-static.dev/path/to/web
    
    • 对于版本化和编译的 css/js 等,我打印 {{ static_assets_base_url ~ asset_url }}
    • 对于版本化图像等,我打印{{ static_image ~ 'bundles/mybundle/img/icon.jpg' }}
    • 对于非版本化图像等,我打印{{ static_content ~ 'content/img/upload-123.jpg' }}

    我不记得我这样做的确切原因,但它与资产错误有关(真令人惊讶)。它只是无法正确处理路径,比如有时它没有添加版本,或者它做错了。

    如果您必须手动修改资产版本会很痛苦,因此您最好准备好部署脚本来执行此操作。

    请记住,Assetic 不会将已编译的资产转储到指定目录中,这是一个已知问题。所以你必须为这些目录添加你自己的符号链接。

    编辑

    如果您的应用位于子域中,则“session.cookie_domain”参数可让您使用相同的域并避免使用 cookie。如果您的应用未使用子域,则您必须为静态资产使用单独的域。

    【讨论】:

      【解决方案2】:

      原来有一个assets_base_urls 选项可让您设置资产域。

      【讨论】:

      • 图片是资产,用asset()函数加载
      • 这个答案没有关于如何从子域提供 Symfony 资产的信息。您刚刚在配置下提供了一个选项。如何实现?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-21
      • 1970-01-01
      • 1970-01-01
      • 2018-05-04
      相关资源
      最近更新 更多