【问题标题】:Symfony2 framework image doesn't appearSymfony2 框架图像没有出现
【发布时间】:2014-11-09 04:45:48
【问题描述】:

我在我们的网站上有一张图片,我们不得不更改它,因为它是一个 .ico 图像,在 google chrome 等浏览器上并未得到广泛支持。它也很大,因此需要减小尺寸。所以我们将图像更改为 info-icon.png 而不是 server-image.ico。

所以,既然我们已经改变了,运行以下命令:

php app/console assetic:dump --env=prod --no-debug
php app/console assets:install ../web --env=prod --no-debug
php app/console cache:clear --env=prod --no-debug
php app/console cache:warmup --env=prod --no-debug

一切都恢复正常,没有报告任何问题。当我们访问我们的网站并查看源代码时,我们可以看到图像 url 已更改为 info-icon.png 但是链接是 404 错误代码。图片的树枝代码如下:

{% image output="/images/info-icon.png"
 '@MyBundle/Resources/public/images/info-ico.png'
%}
 <img src="{{ asset_url }}" alt="">
{% endimage %}

附:图像名称是 info-ico.png 这不是错字,我们希望将图像显示为不同的名称。这也处于生产模式。

如果有人感兴趣,这是资产配置的代码:

assetic:
    debug:          "%kernel.debug%"
    use_controller: false
    bundles:        [ 'MyBundle' ]
    node: /usr/bin/nodejs
    #java: /usr/bin/java
    filters:
        cssrewrite: ~
        uglifycss:
            bin: /usr/local/lib/node_modules/uglifycss/uglifycss
            no_copyright: true
            #apply_to: ['.css$']
        uglifyjs2:
            bin: /usr/local/lib/node_modules/uglify-js/bin/uglifyjs
            no_copyright: true
            #apply_to: ['.js$']
        optipng:
            bin: /usr/bin/optipng
            apply_to: "\.png$"
        jpegtran:
            bin: /usr/bin/jpegtran
            apply_to: ['.jpe?g$']
            progressive: true

我也尝试过手动清除缓存,在 assets:install 命令上使用符号链接,但似乎没有任何效果。有人知道吗?

【问题讨论】:

  • 这是什么版本的 symfony?另外,手动清除缓存是指运行此命令吗? rm -rf app/cache 您是否尝试在没有 --no-debug 标志的情况下运行缓存安装?如果有,输出是什么?
  • @AlanChavez 这是 2.4 版,是的,我运行 rm -rf app/cache 并没有解决问题。我现在会尝试不带 --no-debug 标志的命令并告诉你
  • @AlanChavez 你是个传奇。当我运行assetic:cache时,我们的生产服务器没有安装optipng或jpegtran,所以我从配置文件中删除了这些,重新运行命令,一切正常!
  • 太棒了!我很高兴您的问题得到了解决。请记住回答您的问题:)

标签: php image symfony twig assetic


【解决方案1】:

问题在于assetic:dump 命令和错误配置。

我正在使用 --no-debug 运行该命令,所以我看不到发生了什么,但是在运行该命令时出现了随机字符。该命令正在输出 PNG 编码,因为用于优化 jpeg 和 PNG 图像的模块未安装在生产服务器上,因此只需从配置文件中删除这些模块,然后清除缓存并预热缓存。然后我再次运行assetic:dump 命令解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-18
    • 1970-01-01
    • 2015-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    相关资源
    最近更新 更多