我的Symfony2项目有一个引用CKEditor package的composer.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库。这通常如何接近?
答案 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)