2012-09-01 17 views
11

Estoy intentando optimizar mi proyecto para evitar enviar cookies con los recursos estáticos (es decir, imágenes, scripts, hojas de estilo, etc.). Mi enfoque es crear un dominio static.my-domain.com para servir desde allí todos los recursos estáticos sin cookies.Recursos de Symfony2 de dominio estático o subdominio

¿Cómo puedo cargar los recursos de este dominio usando Symfony2 usando asset?

estoy usando Symfony 2.1 RC2

Respuesta

4

Resulta que hay un assets_base_urls opciones que le permite configurar dominios activos.

+0

y qué hacer con las imágenes? – unairoldan

+0

@ Ztere0 mi respuesta anterior era completamente incorrecta. – meze

+0

Las imágenes son activos, cárguelas con la función asset() –

1

he añadido algunas variables globales ramita para hacer frente a este

# 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 
  • Para css versionado y compilado/js etc imprimo {{ static_assets_base_url ~ asset_url }}.
  • Para las imágenes con versión, etc. Imprimo {{ static_image ~ 'bundles/mybundle/img/icon.jpg' }}.
  • Para imágenes sin versión, etc. Imprimo {{ static_content ~ 'content/img/upload-123.jpg' }}.

No recuerdo exactamente por qué lo hice, pero estaba relacionado con los errores de los activos (qué sorpresa). Simplemente no puede manejar rutas correctamente, como a veces no agrega la versión, o lo hace incorrectamente.

Será una molestia si tiene que modificar la versión de los activos manualmente, por lo que es mejor tener un script de implementación listo para hacer esto.

Ah, y recuerde que Assetic no va a volcar los activos compilados en los directorios especificados, este es un problema conocido. Por lo tanto, debe agregar sus propios enlaces simbólicos para estos directorios.

EDITAR

El parámetro 'session.cookie_domain' le permite utilizar el mismo dominio y evitar las cookies, si su aplicación está en un subdominio. Si su aplicación no usa un subdominio, deberá usar un dominio separado para los activos estáticos.

Cuestiones relacionadas