javascript - 使用 Zurb Foundation 和 Symfony2

标签 javascript css symfony zurb-foundation assetic

在我的 Symfony2 应用程序中,我使用 Zurb Foundation 来构建我的布局。 这一直让我头疼……CSS 工作得很好,但 js 经常不起作用。文件已加载并且没有报告任何错误(Zurb 的工作做得很好),但例如单击选项卡时没有任何反应。

我希望能找到通过Assetic加载基础文件时出现的错误。我没有使用任何过滤器,但我需要 Assetic 从 app\resources\public 加载文件。由于这是一个非 Web 文件夹,如果我直接加载这些文件,我会收到“禁止”错误。

你们把 Foundation 的全局 css 和 js 文件放在 Symfony2 应用程序的哪里?像我一样在 bundle 中还是公共(public)文件夹中?您对如何顺利进行有什么建议吗?

编辑: 看来我的 Zurb Foundation js 根本不起作用......但是它加载时没有错误。如果存在的话,这方面的文档似乎也非常罕见。

最佳答案

答案是“加载顺序”...js 文件以错误的顺序读取,从而导致了问题。

这是解决方案:

链接到 js 库时,请确保单独提及每个文件,以便确定顺序。接下来,链接到 last 的 app.js 文件。如果不这样做,所有文件都会被找到并正确加载,但 Zurb 基金会不会使用它们。如果您查看 app.js 文件,您将看到它加载库,并为每个未找到的库返回 null - 在特定时刻。

所以,不要像这样链接到你的 js 文件:

{% javascripts 
 '@UnknownblissZurbfoundationBundle/Resources/public/javascripts/*'
%}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}

这样做:

{% javascripts 
 '@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.placeholder.js'
 '@UnknownblissZurbfoundationBundle/Resources/public/javascripts/modernizr.foundation.js'
 '@UnknownblissZurbfoundationBundle/Resources/public/javascripts/foundation.min.js'
 '@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.foundation.accordion.js'
 '@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.foundation.alerts.js'
 '@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.foundation.buttons.js'
 '@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.foundation.forms.js'      '@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.foundation.mediaQueryToggle.js'
 '@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.foundation.navigation.js'
 '@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.foundation.topbar.js'
 '@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.foundation.reveal.js'
 '@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.foundation.tabs.js'
 '@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.foundation.tooltips.js'
 '@UnknownblissZurbfoundationBundle/Resources/public/javascripts/app.js'
 '@UnknownblissZurbfoundationBundle/Resources/public/javascripts/*'
 %}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}

这样,就可以确定加载顺序,而不是 Symfony2。尽管如此,以通配符链接结尾仍然是一个明智的主意,因此您可能忘记的任何内容仍然会被链接。

看起来使用 Assetic 的所有额外好处都被这种方式抛弃了,但您仍然具有使用命名空间的优势,并且通过使用过滤器,您可以让 Assetic 将这些文件合而为一。这将限制所需的请求数量。所以唯一真正的缺点是需要额外的代码......

PS 上面选择的顺序对我来说效果很好,但您可能想提出自己的顺序。

关于javascript - 使用 Zurb Foundation 和 Symfony2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15473624/

相关文章:

symfony - 依赖于不存在的参数

javascript - 检测下划线和删除线

html - 谷歌地图有额外的宽度

php - Doctrine ORM : use interface as relation for different entities?

Jquery 'gallery' 交互导致图像链接损坏

jquery - 自定义进度条

symfony - 如何删除 symfony 形式的默认 ID 和名称?

java - sun.org.mozilla.javascript.internal.EcmaError : ReferenceError

javascript - 在 iOS 上的 Scrollable Div 上捕获 Scroll End

javascript - 如何从Windows应用程序调用AJAX API函数?