【发布时间】: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