2013-04-10 106 views
23

使用MVC4與TinyMCE捆綁在一起時出現問題。我得到這個錯誤:與TinyMCE捆綁的MVC4

GET http://localhost:54717/Admin/EditText//langs/da.js 404 (Not Found) Site:1 
    GET http://localhost:54717/Admin/EditText//plugins/lists/editor_plugin.js 404 (Not Found) Site:1 
    GET http://localhost:54717/Admin/EditText//plugins/autolink/editor_plugin.js 404 (Not Found) Site:1 
    GET http://localhost:54717/Admin/EditText//themes/advanced/editor_template.js 404 (Not Found) Site:1 
    GET http://localhost:54717/Admin/EditText//plugins/spellchecker/editor_plugin.js 404 (Not Found) Site:1 
    GET http://localhost:54717/Admin/EditText//plugins/pagebreak/editor_plugin.js 404 (Not Found) Site:1 
    GET http://localhost:54717/Admin/EditText//plugins/style/editor_plugin.js 404 (Not Found) Site:1 
    GET http://localhost:54717/Admin/EditText//plugins/table/editor_plugin.js 404 (Not Found) Site:1 
    GET http://localhost:54717/Admin/EditText//plugins/layer/editor_plugin.js 404 (Not Found) Site:1 
    GET http://localhost:54717/Admin/EditText//plugins/save/editor_plugin.js 404 (Not Found) 
Failed to load: http://localhost:54717/Admin/EditText//langs/da.js 

的代碼看起來像這樣(在BundleConfig.cs)

bundles.Add(
     new ScriptBundle("~/Scripts/Site").Include(
     "~/Scripts/jquery-1.9.1.js", 
     "~/Scripts/tinymce/tiny_mce.js", 
     "~/Scripts/jquery-ui-1.10.1.js", 
     "~/Scripts/jquery.ui.slider.js", 
     "~/Scripts/oline.Base.js", 
     "~/Scripts/Validate/Language/jquery.validationEngine-da.js", 
     "~/Scripts/Validate/jquery.validationEngine.js", 
     "~/Scripts/jquery.ui.effect-blind.js", 
     "~/Scripts/jquery.placeholder.min.js")); 

     BundleTable.EnableOptimizations = true; 

而且在佈局:

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

但如果我刪除了tiny_mce。 js形成捆綁並且像這樣放置< script src="~/Scripts/tinymce/tiny_mce.js"></script>它工作得很好。是否因爲我需要通過tinymce重寫自動加載並將其手動執行?

回答

14

剛跑到這個今天了。看起來,當tinymce捆綁在一起時,它無法找到其他依賴腳本(插件,編輯器模板等)。

由於TinyMCE的已經自帶精縮,我只是從包中排除並單獨加載它解決了這一點。事情是這樣的:

@* include tinymce unbundled so it can find its plugins and other scripts internally when bundles are optimized *@ 
@if (BundleTable.EnableOptimizations) 
{ 
    <script type="text/javascript" src="~/scripts/tinymce/tiny_mce.js"></script> 
} 
else 
{ 
    <script type="text/javascript" src="~/scripts/tinymce/tiny_mce_src.js"></script> 
} 

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

這樣,你仍然使用預精縮版啓用優化時,和原始的源代碼,同時調試。它最終會通過瀏覽器發送多個請求。

+0

+1。看起來有點粗糙,但在檢查了所有可能的解決方案之後,聽起來像是最乾淨和直觀的。 –

25

在致電tinymce.init,請執行下列操作:

tinymce.baseURL = "@Url.Content("~/Scripts/tinymce")"; 

或是其他地方,你的腳本將被保留。

我有這個相同的問題。這是我的工作最終產品

<script> 
    tinymce.baseURL = "@Url.Content("~/Scripts/tinymce")"; 

    // tinyMCE setup 
    tinymce.init({ 
     selector: "textarea.rt-edit", 
     browser_spellcheck: true, 
     menubar: false, 
     plugins: "paste,preview,code,textcolor,link", 
     invalid_elements: "script", 

     // Theme options - button# indicated the row# only 
     toolbar1: "bold italic underline strikethrough subscript superscript link | fontselect fontsizeselect forecolor backcolor | justifyleft justifycenter justifyright cut copy paste pastetext pasteword| outdent indent | undo redo | code preview ", 

    }); 
</script> 
+0

不起作用,tinymce var由於後續js文件加載失敗而未初始化 –

+0

後續js文件加載失敗?如果你覆蓋tinymce var,那當然是行不通的。 – Codeacula

+0

@PatrickPeters:我在第二個網站上遇到了這個問題,與我在該示例中正在處理的內容無關,做了我提出的修復,並且它也在那裏工作。如果你正在重寫tinymce的東西,那麼錯誤在於你的編碼,而不是答案。 – Codeacula

6

@Codeacula有一個很好的解決方案,但另一種方法是相對於TinyMCE的文件夾的路徑包放。

注意,您必須將其拉出主腳本包,使這項工作,但我不使用每一頁上TinyMCE的,有沒有意義的將它添加到主束。另外,我用.min.js作爲擴展名,因爲它加載基於主文件的擴展插件,我沒有什麼,但.min.js文件在我的插件文件夾。

var tinymce = new ScriptBundle("~/Scripts/tinymce/tinymce-bundle.min.js") 
    .Include("~/Scripts/tinymce/tinymce.min.js"); 
bundles.Add(tinymce); 

在您的網頁,TinyMCE的需要:

@Scripts.Render("~/Scripts/tinymce/tinymce-bundle.min.js"); 
+0

這對我來說效果很好,並且比將TinyMCE腳本拉出正常捆綁過程更加一致。 – Neilski

+0

這不適合我。它不能很多fr_FR.js也沒有theme.js –

0

對我來說,我這樣做來解決: 忽略了捆綁和參考directely插件的縮小的版本。

@section scripts 
{ 
    @Scripts.Render("~/bundles/ajax") 
    @Scripts.Render("~/bundles/jqueryval") 
    <script src="~/Scripts/tinymce/tinymce.min.js"></script> 
} 
+0

你讀過其他答案,爲什麼這不是一個有效的解決方案? –