2014-10-29 65 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