Подтвердить что ты не робот

Набор MVC4 с TinyMCE

У меня проблема с объединением MVC4 вместе с TinyMCE. Я получаю эту ошибку:

    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 

Код выглядит так (In 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>, она работает нормально. Это потому, что мне нужно переопределить автоматическую загрузку по тиниме и поместить ее вручную?

4b9b3361

Ответ 1

Просто наткнулся на это и сегодня. Кажется, что когда 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")

Таким образом, вы по-прежнему используете предварительно модифицированную версию, когда включена оптимизация, и исходный исходный код при отладке. В конце концов, это приводит к тому, что браузер отправляет несколько запросов.

Ответ 2

Перед вызовом 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>

Ответ 3

@Codeacula имеет хорошее решение, но другой метод заключается в том, чтобы поместить путь пакета относительно папки TinyMCE.

Обратите внимание, что вы должны вытащить его из основного пакета Script, чтобы сделать это, но поскольку я не использую 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");

Ответ 4

В моем случае я разрешаю следующее: Игнорируйте связывание и прямо ссылайтесь на уменьшенную версию плагина.

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