在Symfony2中使用Javascript供应商

时间:2015-05-06 19:37:13

标签: php symfony package composer-php

我的Symfony2项目有一个引用CKEditor packagecomposer.json文件:

"require": {
    ...
    "ckeditor/ckeditor": "4.4.*"
},

当我在我的Twig视图中包含主Javascript文件时:

{% javascripts
    '../vendor/ckeditor/ckeditor/ckeditor.js'
%}
    <script src="{{ asset(asset_url) }}"></script>
{% endjavascripts %}

它使用以下URL呈现脚本路径:

http://myproject.local/app_dev.php/js/1c365ca_ckeditor_2.js"

如果它是一个独立的Javascript文件,那就没问题了,但是ckeditor.js无法在vendor/ckeditor目录中引用它的许多其他依赖项。即使我明确地将它们全部包含在资产中,我也无法更新它们的相对路径,以便ckeditor可以看到它们。

我确定此问题适用于所有大型Javascript库。这通常如何接近?

2 个答案:

答案 0 :(得分:0)

我遇到了完全相同的问题,我认为在处理第三方独立库时,资产并不是最好的工具,而第三方独立库没有集成在捆绑包中。

所以我通过在symfony项目的web目录中创建ckeditor供应商目录的符号链接找到了解决方法:

cd web

ln -s ../vendor/ckeditor/ckeditor/ ./ckeditor

然后在我的twig模板中,我像这样调用CKeditor脚本:

<script type="text/javascript" src="/ckeditor/ckeditor.js"></script>

<script type="text/javascript">
        // Change CKeditor basepath configuration
        CKEDITOR.basePath = "/ckeditor/";

        // Replace the <textarea id="editor1"> with a CKEditor
        // instance, using default configuration.
        CKEDITOR.replace( 'editor1' );
</script>

答案 1 :(得分:0)

查看CKEditor软件包:Github - Packagist

此捆绑包是CKEditor for Symfony的集成。

您可以在表单中插入CKEditor区域。