我在 Symfony2 项目中使用Twitter Bootstrap 选项卡,它们运行良好 - 但仅在开发环境中,在生产中它们似乎损坏(而不是切换选项卡,链接像普通链接一样工作,#de/#en 添加到网址)。
我在我的模板中使用以下标记:
<ul class="nav nav-tabs" data-tabs="tabs" id="myTab">
<li class="active">
<a data-toggle="tab" href="#de" data-translation-locale="de">Deutsch</a
</li>
<li>
<a data-toggle="tab" href="#en" data-translation-locale="en">English</a
</li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="de">
Deutsch
</div>
<div class="tab-pane" id="en">
English
</div>
</div>
在使用Assetic加载 jquery 后,会包含 Bootstrap .js 文件:
<script src="http://code.jquery.com/jquery-latest.js"></script>
{% javascripts output="js/frontend.js"
'%kernel.root_dir%/../vendor/twitter/bootstrap/js/bootstrap-affix.js'
'%kernel.root_dir%/../vendor/twitter/bootstrap/js/bootstrap-alert.js'
'%kernel.root_dir%/../vendor/twitter/bootstrap/js/bootstrap-button.js'
'%kernel.root_dir%/../vendor/twitter/bootstrap/js/bootstrap-carousel.js'
'%kernel.root_dir%/../vendor/twitter/bootstrap/js/bootstrap-collapse.js'
'%kernel.root_dir%/../vendor/twitter/bootstrap/js/bootstrap-dropdown.js'
'%kernel.root_dir%/../vendor/twitter/bootstrap/js/bootstrap-modal.js'
'%kernel.root_dir%/../vendor/twitter/bootstrap/js/bootstrap-popover.js'
'%kernel.root_dir%/../vendor/twitter/bootstrap/js/bootstrap-scrollspy.js'
'%kernel.root_dir%/../vendor/twitter/bootstrap/js/bootstrap-tab.js'
'%kernel.root_dir%/../vendor/twitter/bootstrap/js/bootstrap-tooltip.js'
'%kernel.root_dir%/../vendor/twitter/bootstrap/js/bootstrap-transition.js'
'%kernel.root_dir%/../vendor/twitter/bootstrap/js/bootstrap-typeahead.js'
%}
<script src="{{ asset(asset_url) }}"></script>
{% endjavascripts %}
我的资产配置(在 config.yml 中)如下所示:
assetic:
debug: %kernel.debug%
use_controller: false
filters:
cssrewrite: ~
lessphp:
file: %kernel.root_dir%/../vendor/leafo/lessphp/lessc.inc.php
apply_to: "\.less$"
对于开发环境(config_dev.yml),use_controller 选项设置为 true:
assetic:
use_controller: true
我使用assetic:dump web(有和没有--env=prod --no-debug 选项),生成并加载了js/frontend.js,bootstrap-tab.js在其中(打开文件并检查),但是这些选项卡仅适用于开发人员。我什至在 config.yml 中设置了 use_controller=true 只是为了看看是否有任何变化。
可行的方法是将 bootstrap-tab.js 从其供应商目录复制到 /web/js 并手动包含它。
目前我正在使用网站上的 bootstrap.min.js 并且效果很好,但我真的很想知道我在使用 Assetic 时做错了什么。