Hola, actualmente estoy utilizando el asp.net MVC 4 rc con System.Web.Optimization. Como mi sitio debe ser localizado según las preferencias del usuario, estoy trabajando con el plugin jquery.globalize.Solución de script localizada
Me gustaría mucho subclasificar la clase ScriptBundle y determinar qué archivos agrupar de acuerdo con System.Threading.Thread.CurrentThread.CurrentUICulture
. Ese sería el siguiente:
bundles.Add(new LocalizedScriptBundle("~/bundles/jqueryglobal")
.Include("~/Scripts/jquery.globalize/globalize.js")
.Include("~/Scripts/jquery.globalize/cultures/globalize.culture.{0}.js",
() => new object[] { Thread.CurrentThread.CurrentUICulture })
));
Por ejemplo, si la cultura interfaz de usuario es "es-ES" Me gustaría que los siguientes archivos para ser recogidos (minified, por supuesto, y si es posible en caché aswell hasta que un archivo de secuencia de comandos o el cambios actuales en la cultura).
- "~/Scripts/jquery.globalize/globalize.js"
- "~/scripts/jquery.globalize/globalizar-en-GB.js" < - Si este archivo no existe en la Separe el sistema de archivos de modo que se repliegue a globalize-en.js.
Intenté sobrecargar el método Include con algo como lo siguiente, pero esto no funcionará porque no se evalúa a petición, sino al inicio de la aplicación.
public class LocalizedScriptBundle : ScriptBundle
{
public LocalizedScriptBundle(string virtualPath)
: base(virtualPath) {
}
public Bundle Include(string virtualPathMask, Func<object[]> getargs) {
string virtualPath = string.Format(virtualPathMask, getargs());
this.Include(virtualPath);
return this;
}
}
Gracias
Constantinos
Si esto es cierto, por supuesto. Pero, como parece, cuando un archivo js o css cambia del lado del servidor, el paquete se vuelve a evaluar para estar actualizado (internamente, quizás utilizando el FileSystemWatcher). No veo la razón por la que no se pueda anular este comportamiento para tener en cuenta otros eventos en el ciclo de vida de la aplicación como, por ejemplo, el cambio de cultura de la interfaz de usuario. – cleftheris
Sí, las respuestas de paquete tienen configuraciones de caché configuradas para invalidar la entrada de caché cuando cambian los archivos del paquete. Hemos abierto el comportamiento de almacenamiento en caché para poder ampliarlo en nuestra lista de tareas pendientes, pero no estoy seguro de cuándo llegaremos a esto. –