MVC4 junto con TinyMCE


Tengo un problema al usar MVC4 junto con TinyMCE. Me sale este error:

    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 

El código se ve así( En 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; 

Y en el diseño:

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

Pero si elimino el tiny_mce.js formar la agrupación y colocarlo de esta manera script src="~/Scripts/tinymce/tiny_mce.js"></script> funciona muy bien. ¿Es porque necesito anular la carga automática por tinymce y colocar hacerlo manualmente?

Author: mortenstarck, 2013-04-10

4 answers

Acabo de encontrarme con esto hoy también. Parece que cuando tinymce está incluido, no puede localizar otros scripts dependientes (plugins, plantilla de editor, etc.).

Dado que TinyMCE ya viene minificado, resolví esto simplemente excluyéndolo del paquete y cargándolo por separado. Algo como esto:

@* 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")

De esta manera, todavía está utilizando la versión pre-minificada cuando las optimizaciones están habilitadas, y el código fuente sin procesar durante la depuración. Termina con más de una solicitud que se envía por el navegador sin embargo.

 15
Author: danludwig,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-04-30 14:41:10

Antes de llamar a tinymce.init, haga lo siguiente:

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

O donde se guarden sus scripts.

Tuve este mismo problema. Este es mi producto final de trabajo

    <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>
 27
Author: Codeacula,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-22 20:08:20

@Codeacula tenía una buena solución, pero otro método es poner la ruta del paquete relativa a la carpeta TinyMCE.

Tenga en cuenta que tiene que sacarlo del paquete de script principal para que esto funcione, pero como no estoy usando TinyMCE en todas las páginas, no tiene sentido agregarlo al paquete principal. Además, usé .min.js como la extensión porque carga plugins basados en la extensión del archivo maestro, y no tengo nada más que .min.js archivos en mis plugins carpeta.

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

En sus páginas donde se necesita TinyMCE:

@Scripts.Render("~/Scripts/tinymce/tinymce-bundle.min.js");
 7
Author: bradlis7,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-06 22:11:45

En mi caso hago lo siguiente para resolver : Ignore la agrupación y haga referencia directamente a la versión minificada del plugin.

@section scripts
{
    @Scripts.Render("~/bundles/ajax")
    @Scripts.Render("~/bundles/jqueryval")
    <script src="~/Scripts/tinymce/tinymce.min.js"></script>
}
 0
Author: f.belhocine,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-15 11:22:55