2014-10-29 79 views
2

当我尝试渲染缩小的TinyMCE包时,Internet Explorer有一个合适的地方。因此,为了创建避免微小束,我跟着these instructions建立一个“通用”或“基本”包在我BundleConfig:如何使用TinyMCE捆绑?

bundles.Add(new Bundle("~/Scripts/tinymce") 
       .Include("~/Scripts/tinymce/tinymce.min.js", 
          "~/Scripts/tinymce/jquery.tinymce.min.js")); 

如何使这个网页上?以下的无似乎工作:

@Bundles.Render("~/Scripts/tinymce") 
@Bundle.Render("~/Scripts/tinymce") 
@Bundle("~/Scripts/tinymce") 

这使得至少标签:

@Scripts.Render("~/Scripts/tinymce") 

但是,当它试图加载文件时,它抛出一个403错误:

"NetworkError: 403 Forbidden - http://localhost:1062/Scripts/tinymce/?v=MTojK5ORvAZmonNqNGJ3aWhOYyor-Fa8dZHTqfSOlUM1" 
+0

这已被回答[在此SO帖子中](http://stackoverflow.com/a/15555201/1810243)。您不能为您的软件包提供一个也是现有目录名称的名称。 – MikeSmithDev 2014-10-30 13:47:05

回答

1

改变你的包名称不是磁盘

现有位置例如其他的东西:Bundle("~/Scripts/tinymce")Bundle("~/js/tinymce")

+0

不幸的是,这不起作用,因为TinyMCE需要加载一堆其他资源。 – 2014-10-29 19:07:29

+2

不太熟悉TinyMCE,但为什么这些资源不能成为你的捆绑包的一部分? – GvM 2014-10-29 19:16:22

+0

有点儿。看到我发布的答案。我对此并不满意,所以让我知道你是否可以想出改进方法。 – 2014-10-30 16:58:34

4

正如在评论中指出,问题的this question地址的一部分。既然你不能给你包的名称,这也是现有目录的名称,我给它改名:

bundles.Add(new Bundle("~/js/tinymce") 
       .Include("~/Scripts/tinymce/tinymce.min.js", 
          "~/Scripts/tinymce/jquery.tinymce.min.js")); 

然而,由于TinyMCE的动态加载的依赖关系(插件和主题文件)的方式,我有确保所有这一切都包含在捆绑以及:

bundles.Add(new Bundle("~/js/tinymce") 
       .Include("~/Scripts/tinymce/tinymce.min.js", 
          "~/Scripts/tinymce/jquery.tinymce.min.js", 
          "~/Scripts/tinymce/plugins/autoresize/plugin.min.js", 
          "~/Scripts/tinymce/plugins/charmap/plugin.min.js", 
          "~/Scripts/tinymce/plugins/code/plugin.min.js", 
          "~/Scripts/tinymce/plugins/image/plugin.min.js", 
          "~/Scripts/tinymce/plugins/table/plugin.min.js", 
          "~/Scripts/tinymce/plugins/textcolor/plugin.min.js", 
          "~/Scripts/tinymce/themes/modern/theme.min.js")); 

这意味着,如果我想要一个新的插件,它需要的箱文件,而不是一个简单的脚本更新代码更改和重新部署。然而,这个应用程序的要求并没有改变,可能不会很快(此外,它是一个内部应用程序),所以这不是一个真正的问题。

最后,TinyMCE的同时动态地加载皮肤文件(CSS,图像和字体)。我可以通过改变TinyMCE的配置解决这个指定的皮肤目录:

$('.tinymce').tinymce({ 
    skin_url: '/Scripts/tinymce/skins/lightgray', 
    // other stuff... 
}); 

我试图创建主题文件捆绑:

bundles.Add(new Bundle("~/css/tinymce") 
       .Include("~/Scripts/tinymce/skins/lightgray/*.css")); 

和不断变化的,像这样我的配置:

$('.tinymce').tinymce({ 
    skin_url: '/css/tinymce', 
    // blah blah blah... 
}); 

但是,因为TinyMCE查找单个文件,所以这不起作用。它为skin.min.css和content.min.css投掷了404个错误。

所以现在我有一些捆绑TinyMCE的文件,但不是全部。这至少比以前更好(为每个单独的文件分别发出HTTP请求)。

+0

使用skin_url:排序我的问题。谢谢 – Stuart 2017-09-26 09:53:57