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

このような Sonata 管理バンドルでメディア バンドルを使用していますが、すべて正常に動作しますが、そのサムネイルだけがレンダリングされません。Media BUndle doc Helper セクションを読みましたが、理解できません。

私の ArticleAdmin コントロールで、次のように filend を追加します。

/**
 * 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: Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "GET /admin/sonata/media/media/uploads/media/default のルートが見つかりません/0001/01/thumb_1_admin.jpeg"" at C:\xampp\htdocs\Symfony\app\cache\dev\classes.php 行 2017 {"例外":"[オブジェクト] (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

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 の設定に関する追加情報は、こちらまたはこちら(PHP Storm) にあります。

于 2016-01-09T15:31:26.277 に答える
0

リンクは「upload/media/...」ではなく「/uploads/media/....」のようなものにする必要があります

構成ファイルで、変更します

cdn: サーバー: パス: アップロード/メディア

cdn: サーバー: パス: /uploads/media

問題の解決に役立つことを願っています。

于 2015-08-28T09:28:11.083 に答える
0

config.yml のパスを変更する必要があります

sonata_media
    cdn:
        server:
            path: /myproject/web/uploads/media
于 2016-02-16T19:47:50.910 に答える