好吧,我一直在寻找对此的一些输入,但没有找到任何可以直接帮助的内容(仅提到这个问题与其他问题相关)。
基本上,我在查找 assetic 文件与实际生成的文件时遇到 assetic 生成的路径问题。
它尝试加载的路径是:/js/admin_part_1.js,而它生成的文件只是/js/admin.js
我正在转储文件:
php app/console assetic:dump --env=prod --no-debug
config.yml 的相关部分:
assetic:
debug: "%kernel.debug%"
use_controller: false
filters:
cssrewrite: ~
assets:
admin_js:
inputs:
- @UserBundle/Resources/js/admin-tools.js
output: js/admin.js
通过以下方式加载 javascript 标签:
{% javascripts '@admin_js' output='js/admin.js' %}
<script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}
我的问题是,这个幻像 _part_1 来自哪里,我怎样才能告诉它停止添加它?
我猜这是用来版本文件的。即使在代码中您看到
assets/css/my_file.css
并且在渲染的 HTML 中您看到 assets/css/my_file.09280929.css
,Assetic 也知道要获取哪个文件。通常,在 public/assets/mybundle/...
中生成。
Assetic 将生成一个带有某种哈希值的文件,该文件将存储在缓存中。
但是下次,如果资产发生变化,那么哈希值也会发生变化,这将允许自动缓存刷新。
如果您确实需要,可以通过将配置
read_from
和 write_to
更改为 null 来禁用它:
assetic:
read_from: ~
write_to: ~
并在调用资源文件的模板中将版本控制添加为 null:
<link rel="stylesheet" href="{{ asset('css/my_file.css', version=null) }}" />