2012-11-10 49 views
8

Tôi muốn thêm hình ảnh nội dung vào chế độ xem của mình. Nhưng nếu tôi tải các trang hình ảnh sẽ không tải ..Symfony 2 Hình ảnh tài sản

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') }}"> 

Để cài đặt các tài sản tôi chạy:

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

Tôi đã quên điều gì đó chưa?

+1

Url bạn nhận được bên trong thuộc tính src của img là gì? – AdrienBrault

+0

Trả lời

21

Lệnh assets:install public_html sao chép thư mục src/Acme/DemoBundle/Resources/public/ vào thư mục public_html/bundles/acmedemo/. Vì vậy, bạn cần phải tham khảo url đó.

Ví dụ: Bạn có một bó tên MvParkBundle và bạn đã tạo ra một hình ảnh menu-park.gif bên trong thư mục Resources/public/images, bạn nên sử dụng mã này bên trong cành lá, giả định rằng bộ điều khiển phía trước là bên trong public_html quá:

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

Nếu bạn chạy lệnh assets:install public_html, mọi thứ sẽ đúng.

+0

Nhưng tại sao --symlink không hoạt động? nó phải giống nhau không? –

+0

Bạn cũng có thể sử dụng --symlink, nhưng bạn cần thay đổi đường dẫn của bạn trong mẫu Twig thành 'bundles/{bundlename}/images/menu-park.gif'. –

+2

Vấn đề là: 'tài sản app/console: cài đặt public_html', nhưng' app/console assets: install public_html --symlink' không hoạt động .. nhưng tại sao: S –

Các vấn đề liên quan