【问题标题】:Symfony2 Assetic: How to display uploaded image which path is stored in database?Symfony2 Assetic:如何显示上传的图像存储在数据库中的路径?
【发布时间】:2012-05-04 11:49:16
【问题描述】:

当我将图像存储在我的包目录结构中时,使用 Assetic 很容易显示图像,如文档中所述:

{% image '@AcmeFooBundle/Resources/public/images/example.jpg'
    filter='jpegoptim' output='/images/example.jpg'
%}
<img src="{{ asset_url }}" alt="Example"/>
{% endimage %}

但是我如何为我上传的图片使用资产?在我的 getWebPath 下方返回相对于 web 目录的路径,例如:“/uploads/images/image.jpg”。也许这个解决方案没问题,不需要使用资产?我认为将它用于像上面 jpegoptim 这样的一些过滤可能很有用

<img src="{{app.request.basepath}}/{{ entity.getWebPath }}">

【问题讨论】:

    标签: image symfony twig assets


    【解决方案1】:
    <img src="{{ app.request.scheme ~ '://' ~ app.request.host ~ '/' ~ entity.getWebPath }}" />
    

    【讨论】:

    • 我在第二个 sn-p 代码中做了同样的事情,问题是如何用 Assetic 做到这一点。
    • 在您的 getWebPath 中返回相对于 web 目录的路径,例如:“/uploads/images/image.jpg” 你只能这样做,它可以完美运行&lt;img src="{{ entity.getWebPath }}" /&gt;,浏览器将自动添加主机名称:)
    • 我试过了,然后路径与我的操作和参数路由 f.ex: app.php/action/param1/param2/uploads/images/image.jpg 相关,结果得到 404那张图片
    • 那是因为entity.getWebPath开头没有包含/,所以试试这个&lt;img src="{{ '/' ~ entity.getWebPath }}" /&gt;
    • 另一种方法你可以使用这个:&lt;img src="{{ asset(entity.getWebPath) }}" /&gt;
    【解决方案2】:

    您可以使用 getUploadRootDir(),getAbsolutePath()... 将它们存储在自动生成的网络目录“uploads/files/”中,然后使用
    src="{{ 资产('uploads/files/'~entity.path) }}"

    【讨论】:

      猜你喜欢
      • 2018-10-27
      • 1970-01-01
      • 1970-01-01
      • 2020-02-12
      • 2018-05-09
      • 2014-12-10
      • 1970-01-01
      • 1970-01-01
      • 2017-04-17
      相关资源
      最近更新 更多