我有2个环境......运行MAMP的本地开发环境和我的开发团队共享的LAMP服务器进行测试。这两个环境都使用dev symfony环境(app_dev.php),我们已禁用assetic_controller。在我们的本地设置中,我们始终能够进行更改,运行缓存:清除和资产:转储,并且一切正常。在我们的共享环境(我们使用magellanes进行部署)中,我们最终得到了这个奇怪的场景,其中我们的bundle的公共/ Resources / js中的javascript文件被写入web / js,其文件名不同于生成嵌入它们的HTML。
例如,在树枝模板中有这样的:
{% javascripts '@MyGreatBundle/Resources/public/js/Default/*' %}
<script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}
html中写的内容是:
<script type="text/javascript" src="/js/60d13ef_part_1_myscript_7.js"></script>
但是在web / js中转储到磁盘的是:
60d13ef_part_1_myscript_6.js
部署步骤(总结)如下:
那么我做错了什么?即使我在部署后进入并手动清除缓存/运行assetic:dump,问题仍然存在。每隔一段时间我们就会部署它只是工作,但大部分都没有。此外,它可靠地工作了一段时间然后停止了。我不知道在哪里寻找追踪问题。
答案 0 :(得分:0)
这看起来像个错误。我的一个JS文件以大写字母开头,文件在写入HTML时的排序方式与写入磁盘时的排序方式不同。我刚刚提交了以下错误报告。希望这有助于某人:
环境:
引用整个资产目录时,例如。资源/公共/ JS /默认值:
Ascript.js
bscript.js
cscript.js
像这样:
{% javascripts '@MyGreatBundle/Resources/public/js/Default/*' %}
<script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}
html中写的内容是:
<script type="text/javascript" src="/js/60d13ef_part_1_Ascript_1.js"></script>
<script type="text/javascript" src="/js/60d13ef_part_1_byscript_2.js"></script>
<script type="text/javascript" src="/js/60d13ef_part_1_cscript_3.js"></script>
但是在web / js中写入磁盘的是:
60d13ef_part_1_bscript_1.js
60d13ef_part_1_cscript_2.js
60d13ef_part_1_Ascript_3.js
所以所有的javascripts 404.将Ascript.js重命名为ascript.js解决了这个问题。