1

我对 Sonata Media 捆绑包有疑问。我在服务器(本地)上上传的图像不显示(缺少缩略图)。我检查了路径,一切都是正确的。我上传的所有图像都转移到目录/web/ uploads/media中。

检查截图:

在此处输入图像描述

全尺寸截图在这里

配置文件:

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

我在这样的奏鸣曲管理包中使用媒体包,一切正常,但只是没有呈现缩略图。我阅读了 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/default 的路由/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\cache 找不到 \"GET /admin/sonata/media/media/uploads/media/default/0001/01/thumb_1_admin.jpeg\" 的路由\dev\classes.php:2017,Symfony\Component\Routing\Exception\ResourceNotFoundException(代码:0):在 C:\xampp\htdocs\Symfony\app\cache\dev\appDevUrlMatcher.php:521)"} []

4

4 回答 4

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

交响乐环境 app_dev 不适用于奏鸣曲媒体包。

干杯

于 2017-06-20T01:08:55.300 回答
0

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

在您的配置文件中,更改

CDN:服务器:路径:上传/媒体

CDN:服务器:路径:/上传/媒体

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

于 2015-08-28T09:28:11.083 回答
0

需要更改 config.yml 中的路径

sonata_media
    cdn:
        server:
            path: /myproject/web/uploads/media
于 2016-02-16T19:47:50.910 回答
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""说它试图通过控制器而不是直接访问来加载图像。可以在此处此处(PHP Storm)找到有关设置环境的其他信息。

于 2016-01-09T15:31:26.277 回答