2012-11-10 24 views
8

Desidero aggiungere immagini delle risorse alle mie viste. Ma se carico della pagina le immagini non verranno caricati ..Symfony 2 Immagini delle risorse

config:

framework: 
    esi:    ~ 
    translator:  { fallback: "%locale%" } 
    secret:   "%secret%" 
    router: 
     resource: "%kernel.root_dir%/config/routing.yml" 
     strict_requirements: "%kernel.debug%" 
    form:   true 
    csrf_protection: true 
    validation:  { enable_annotations: true } 
    templating:  { engines: ['twig'], assets_version: "1.0.0" } 
    default_locale: "%locale%" 
    trust_proxy_headers: false # Whether or not the Request object should trust proxy headers (X_FORWARDED_FOR/HTTP_CLIENT_IP) 
    session:   ~ 

# Twig Configuration 
twig: 
    debug:   "%kernel.debug%" 
    strict_variables: "%kernel.debug%" 

# Assetic Configuration 
assetic: 
    debug:   "%kernel.debug%" 
    read_from:  %kernel.root_dir%/../public_html 
    write_to:  %kernel.root_dir%/../public_html 
    use_controller: false 
    #bundles:  [ ] 
    #java: /usr/bin/java 
    filters: 
     cssrewrite: ~ 
     #closure: 
     # jar: "%kernel.root_dir%/Resources/java/compiler.jar" 
     #yui_css: 
     # jar: "%kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar" 

index.html.twig

<img src="{{ asset('images/menu-park.gif') }}"> 

Per installare il patrimonio corro:

php app/console assets:install public_html --env=dev --symlink 

Ho dimenticato qualcosa?

+1

Qual è l'URL che si ottiene all'interno dell'attributo src di img? – AdrienBrault

+0

risposta

21

Il comando assets:install public_html copia la directory src/Acme/DemoBundle/Resources/public/ nella directory public_html/bundles/acmedemo/. Quindi è necessario fare riferimento a quell'URL.

Per esempio: Si dispone di un fascio di nome MvParkBundle e aver creato un'immagine menu-park.gif dentro la directory Resources/public/images, è necessario utilizzare questo codice all'interno ramoscello, supponendo che il front controller è dentro public_html troppo:

<img src="{{ asset('bundles/mvpark/images/menu-park.gif') }}"> 

Se si esegue il comando assets:install public_html, tutto dovrebbe essere corretto.

+0

Ma perché --symlink non funziona? dovrebbe essere lo stesso? –

+0

Puoi anche usare il link --symlink, ma devi cambiare il tuo percorso nel modello Twig su 'bundles/{bundlename}/images/menu-park.gif'. –

+2

Il problema è: 'App/console assets: installa public_html' funziona, ma' app/console assets: installa public_html --symlink' non funziona .. ma perché: S –