【问题标题】:default icons for file types with SonataMediaBundleSonataMediaBundle 文件类型的默认图标
【发布时间】:2014-02-12 16:14:05
【问题描述】:

我正在使用 SonataMediaBundle,我不想为某些文件类型(例如 pdf、xls、doc)生成图标。我想使用默认图标(例如)。

我一直在阅读 Sonata Media documentation,我相信我需要这样的东西:

web/uploads/media/media_bundle/images/default_pdf/file.pngweb/uploads/media/sonatamedia/files/default_pdf/file.png

两者都不起作用。

<format> 的意思是“小”或“大”,我也试过这个:

web/uploads/media/media_bundle/images/default_small/file.png

我假设这意味着file.png 将为每个文件显示,无论 mime 类型如何,如果需要一个小图标并且文件实例没有自定义图标。我还尝试使用 admin 而不是 default 作为上下文。没有骰子。

图标 src 始终为/uploads/media/sonatamedia/files/admin/file.png- 这是一个绝对路径,实际上并不存在。

我的图标文件是 45px 宽,这是我在 config.yml 中设置的:

        formats:
            small: { width: 45 , quality: 70}
            big:   { width: 500 , quality: 70}
            pdf: { width: 45 , quality: 70} //tried with and without this line

文件权限为 644 且缓存已被清除。我做错了什么?

【问题讨论】:

    标签: symfony-sonata sonata-media-bundle


    【解决方案1】:

    在文档中,示例配置显示:

    cdn:
        server:
            path: /uploads/media # http://media.sonata-project.org/
    

    我需要

    cdn:
        server:
            path: /ACC/web/uploads/media # http://media.sonata-project.org/
    

    因为我网站的基本网址类似于http://example.com/ACC,我希望这对其他人有用。

    【讨论】:

      【解决方案2】:

      假设您的文档在默认上下文中

      {% thumbnail media, 'big' %}
      

      会给你一个像这样的图像路径

      /uploads/media/sonatamedia/files/default_big/file.png
      

      您只需将 file.png 复制到 /uploads/media/sonatamedia/files/default_big/ 即可。

      编辑: 我个人选择了 CSS。

      模板:

      <a href="{{ path('sonata_media_download', {'id': media|sonata_urlsafeid }) }}"
      class="downloadLink">Download {{media.name}}
      </a>
      

      CSS:

      .downloadLink{
          margin: 10px;
          padding: 10px 10px 10px 62px;
          background: #fff url(../../bundles/mybundle/images/icons/fileIcon.png) left top no-repeat;
          display: block;
          border: 1px solid #ddd;
          height: 60px;
      }
      

      【讨论】:

      • 问题是 src 是绝对路径。如果 `{%thumbnail%} 帮助器生成了一个相对于基本 url 的路径,我就准备好了。
      【解决方案3】:

      是的。它在 Sonata 源代码中的硬编码如下:

      // @todo: fix the asset path
      $path = sprintf('sonatamedia/files/%s/file.png', $format);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-08-02
        • 1970-01-01
        • 2014-03-30
        • 2023-03-29
        • 1970-01-01
        • 1970-01-01
        • 2014-10-11
        相关资源
        最近更新 更多