met*_*din 9 javascript php symfony 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
Run Code Online (Sandbox Code Playgroud)
通过以下方式加载javascript代码:
{% javascripts '@admin_js' output='js/admin.js' %}
<script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}
Run Code Online (Sandbox Code Playgroud)
我的问题是,这个幻影_part_1来自哪里,如何告诉它停止添加它?
小智 0
我猜这是用来版本文件的。即使您在代码中看到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: ~
Run Code Online (Sandbox Code Playgroud)
并在调用资源文件的模板中将版本控制添加为 null:
<link rel="stylesheet" href="{{ asset('css/my_file.css', version=null) }}" />
Run Code Online (Sandbox Code Playgroud)