首页 文章

索纳塔媒体捆绑没有图像预览

提问于
浏览
1

我的Sonata Media捆绑包有问题 . 我在服务器(本地)上传的图像不会显示(缩略图丢失) . 我检查了路径,这一切都是正确的 . 我上传的所有图像都会传输到目录 /web/ uploads/media .

检查截图:

enter image description here

Full size screenshot here

Config File:

sonata_media:
    # if you don't use default namespace configuration
    #class:
    #    media: MyVendor\MediaBundle\Entity\Media
    #    gallery: MyVendor\MediaBundle\Entity\Gallery
    #    gallery_has_media: MyVendor\MediaBundle\Entity\GalleryHasMedia
    default_context: default
    db_driver: doctrine_orm # or doctrine_mongodb, doctrine_phpcr
    contexts:
        default:  # the default context is mandatory
            providers:
                - sonata.media.provider.dailymotion
                - sonata.media.provider.youtube
                - sonata.media.provider.image
                - sonata.media.provider.file

            formats:
                preview:   { width: 100, quality: 100}
                small: { width: 100 , quality: 70}
                big:   { width: 500 , quality: 70}

    cdn:
        server:
            path: uploads/media

    filesystem:
        local:
            directory:  %kernel.root_dir%/../web/uploads/media
            create:     false

sonata_notification:
    backend: sonata.notification.backend.runtime

sonata_notification:
    admin:
        enabled: false

我在Sonata管理软件包中使用Media捆绑包这样做,并且所有工作都很好,但只是没有渲染缩略图 . 我阅读Media BUndle doc Helper部分,但不明白 .

在我的ArticleAdmin控制器中,我添加了这样的文件:

/**
 * Configure Form Fields
 *
 * Fields to be shown on create/edit forms
 */
protected function configureFormFields(FormMapper $formMapper)
{
    $link_parameters = array();

    if ($this->hasParentFieldDescription()) {
        $link_parameters = $this->getParentFieldDescription()->getOption('link_parameters', array());
    }

    if ($this->hasRequest()) {
        $context = $this->getRequest()->get('context', null);

        if (null !== $context) {
            $link_parameters['context'] = $context;
        }
    }
$formMapper->add('media', 'sonata_type_model_list', array('required' => false), array(
                'link_parameters' => $link_parameters
           ))
}

有解决方案吗


更新:

在我的日志文件中,我发现了这个:

[2015-01-22 15:28:22] request.ERROR:未捕获的PHP异常Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException:“找不到”GET / admin / sonata / media / media / uploads / media /的路由默认/ 0001/01 / thumb_1_admin.jpeg“”在C:\ xampp \ htdocs \ Symfony \ app \ cache \ dev \ classes.php第2017行{“exception”:“[object](Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException(代码:0):在C:\ xampp \ htdocs \ Symfony \ app \中找不到\“GET /admin/sonata/media/media/uploads/media/default/0001/01/thumb_1_admin.jpeg \”的路由cache \ dev \ classes.php:2017,Symfony \ Component \ Routing \ Exception \ ResourceNotFoundException(code:0):at C:\ xampp \ htdocs \ Symfony \ app \ cache \ dev \ appDevUrlMatcher.php:521)“} [ ]

4 回答

  • 0

    您的链接应该是'/ uploads / media / ....'而不是'upload / media / ...'

    在配置文件中,进行更改

    cdn:server:path:uploads / media

    cdn:server:path:/ uploads / media

    希望它有助于解决您的问题 .

  • 0

    除了Stiff Roy的回答,您可以将虚拟主机根目录设置为Symfony / web(在您的情况下) .

    所以当你在 http://localhost/app_dev.php/admin/sonata/media/media/list 上时你的图像加载为 http://localhost/uploads/media/default/0001/01/thumb.jpg

    错误 "No route found for "GET /admin/sonata/media/media/uploads/media/default/0001/01/thumb_1_admin.jpeg"" 表示它试图通过控制器而不是直接访问来加载图像 . 有关设置env的其他信息,请参见herehere(PHP Storm) .

  • 0

    需要更改config.yml中的路径

    sonata_media
        cdn:
            server:
                path: /myproject/web/uploads/media
    
  • 0

    好的,所以我这样解决了问题:

    sonata_media:
    # if you don't use default namespace configuration
    #class:
    #    media: MyVendor\MediaBundle\Entity\Media
    #    gallery: MyVendor\MediaBundle\Entity\Gallery
    #    gallery_has_media: MyVendor\MediaBundle\Entity\GalleryHasMedia
    db_driver: doctrine_orm # or doctrine_mongodb, doctrine_phpcr it is mandatory to choose one here
    default_context: default # you need to set a context
    contexts:
        default:  # the default context is mandatory
            providers:
                - sonata.media.provider.dailymotion
                - sonata.media.provider.youtube
                - sonata.media.provider.image
                - sonata.media.provider.file
                - sonata.media.provider.vimeo
    
            formats:
                small: { width: 100 , quality: 70}
                big:   { width: 500 , quality: 70}
    
    cdn:
        server:
            path: "/uploads/media" # http://media.sonata-project.org/
    
    filesystem:
        local:
            directory:  "%kernel.root_dir%/../web/uploads/media"
            create:     false
    

    并在控制台:$ php app / console server:start

    symphony环境app_dev不使用sonata媒体包 .

    干杯

相关问题