asp.net mvc 4 - net - Vinculación MVC4 con TinyMCE
forms asp net core (4)
@Codeacula tenía una buena solución, pero otro método es colocar la ruta del paquete relativa a la carpeta TinyMCE.
Tenga en cuenta que debe sacarlo del paquete de scripts principal para que esto funcione, pero como no estoy usando TinyMCE en cada página, no tiene sentido agregarlo al paquete principal. Además, utilicé .min.js como la extensión porque carga complementos basados en la extensión del archivo maestro, y no tengo más que archivos .min.js en mi carpeta de complementos.
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");
Tengo un problema al usar MVC4 Bundling 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 the tiny_mce.js forma el paquete y lo coloco como < script src="~/Scripts/tinymce/tiny_mce.js"></script>
funciona bien. ¿Es porque necesito anular la carga automática por tinymce y colocarlo manualmente?
Acabo de toparme con esto hoy también. Parece que cuando tinymce está incluido, no puede encontrar otros scripts dependientes (complementos, plantilla de editor, etc.).
Como 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. Sin embargo, termina con más de una solicitud enviada por el navegador.
Antes de llamar a tinymce.init, haga lo siguiente:
tinymce.baseURL = "@Url.Content("~/Scripts/tinymce")";
O donde sea que se guarden tus scripts.
Tuve el 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>
En mi caso, hago lo siguiente para resolver: Ignorar la agrupación y referenciar, en forma directa, la versión minimizada del complemento.
@section scripts
{
@Scripts.Render("~/bundles/ajax")
@Scripts.Render("~/bundles/jqueryval")
<script src="~/Scripts/tinymce/tinymce.min.js"></script>
}