0

在我的 Symfony 项目中,我尝试使用 Chartjs.org 的 javascript。

我将 chart.js 文件放在所有其他 javascript 文件所在的位置,并在 javascript.html 中包含该文件,以便它在整个项目中可用。

<script src="assets/js/chart.js"></script>

在我的树枝模板中,我尝试像这样实例化图表:

<canvas id="myChart" width="400" height="400"></canvas>

<script>
    var ctx = document.getElementById("myChart").getContext("2d");
    var myNewChart = new Chart(ctx);
</script>

这会引发错误:Uncaught ReferenceError: Chart is not defined

我错过了什么?

答案:

{% javascripts '@AcmeFooBundle/Resources/public/js/*' %}
    <script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}

更多细节:http ://symfony.com/doc/2.1/cookbook/assetic/asset_management.html

4

1 回答 1

1

至于将脚本放在哪里的问题,也许这会起作用:

<script src="{{ asset('js/propuestas_public.js') }}" type="text/javascript"></script>

http://symfony.com/doc/2.0/book/templating.html#linking-to-assets

资产功能的主要目的是使您的应用程序更便携。如果您的应用程序位于主机的根目录(例如 http://example.com),那么呈现的路径应该是 /images/logo.png。但是,如果您的应用程序位于子目录中(例如http://example.com/my_app),则每个资产路径都应使用子目录(例如 /my_app/images/logo.png)呈现。资产功能通过确定您的应用程序的使用方式并相应地生成正确的路径来解决此问题。

此外,如果您使用资产功能,Symfony 可以自动将查询字符串附加到您的资产,以保证更新的静态资产在部署时不会被缓存。例如,/images/logo.png 可能看起来像 /images/logo.png?v2。有关更多信息,请参阅 assets_version 配置选项。

于 2013-06-05T14:15:17.120 回答