/// <summary> /// Recoge un archivo css y lo devuelve sin lineas en blanco /// </summary> /// <param name="fileName">Nombre del archivo</param> /// <param name="folder">Carpeta contenedora en el servidor desde la raiz</param> /// <param name="min">Nombre del archivo a minificar sin extension</param> /// <returns></returns> public static string InlineFile(FileTipe tipo, string fileName, string folder, string min) { string retorno = string.Empty; switch (tipo) { case FileTipe.css: retorno = "<style type=\"text/css\">"; break; case FileTipe.javascript: retorno = "<script type=\"text/javascript\">"; break; } try { ficheros f = new ficheros(); string file = f.RutaCompleta(folder) + fileName; if (f.existeFichero(fileName, folder) == true) { StreamReader read = new StreamReader(file); string content = read.ReadToEnd(); if (tipo == FileTipe.css) { content = content.Replace(Environment.NewLine, " "); content = content.Replace((char)10, ' '); content = content.Replace((char)11, ' '); content = content.Replace((char)12, ' '); content = content.Replace((char)13, ' '); content = content.Replace("\t", ""); content = content.Replace(" ", ""); content = content.Replace("; ", ";"); content = content.Replace(": ", ":"); content = content.Replace(" {", "{"); content = content.Replace("{ ", "{"); content = content.Replace(" }", "}"); content = content.Replace("} ", "}"); } retorno += content; read.Close(); } f = null; } catch { retorno += ""; } switch (tipo) { case FileTipe.css: retorno += "</style>"; break; case FileTipe.javascript: retorno += "</script>"; break; } return(retorno); }
/// <summary> /// Recoge un archivo css y lo devuelve sin lineas en blanco /// </summary> /// <param name="fileName">Nombres de los archivos</param> /// <param name="folder">Carpetas contenedoras en el servidor desde la raiz en el mismo orden que los archivos</param> /// <param name="min">Nombre del archivo a minificar sin extension</param> /// <returns></returns> public static string InlineFile(FileTipe tipo, string[] fileName, string[] folder, string min, bool inline = false) { string retorno = string.Empty; string fichero = min; ficheros f = new ficheros(); switch (tipo) { case FileTipe.css: fichero += ".css"; retorno = "<style>"; break; case FileTipe.javascript: fichero += ".js"; retorno = "<script>"; break; } string ok = string.Empty; try { for (int i = 0; i < fileName.Length; i++) { ok += "/* " + folder[i] + "/" + fileName[i]; if (string.IsNullOrEmpty(folder[i])) { ok += " (fichero remoto) */"; System.Net.WebClient wc = new System.Net.WebClient(); string content = wc.DownloadString(fileName[i]); wc.Dispose(); wc = null; if (tipo == FileTipe.css) { content = content.Replace(Environment.NewLine, " "); content = content.Replace((char)10, ' '); content = content.Replace((char)11, ' '); content = content.Replace((char)12, ' '); content = content.Replace((char)13, ' '); content = content.Replace("\t", ""); content = content.Replace(" ", " "); content = content.Replace("; ", ";"); content = content.Replace(": ", ":"); content = content.Replace(" {", "{"); content = content.Replace("{ ", "{"); content = content.Replace(" }", "}"); content = content.Replace("} ", "}"); } ok += content; } else { if (f.existeFichero(fileName[i], folder[i])) { ok += " exist */"; string file = f.RutaCompleta(folder[i]) + fileName[i]; StreamReader read = new StreamReader(file); string content = read.ReadToEnd(); System.Text.RegularExpressions.Regex rgx = new System.Text.RegularExpressions.Regex(@"(?=\/\*)(.*)(\*\/)"); content = rgx.Replace(content, ""); if (tipo == FileTipe.css) { content = content.Replace(Environment.NewLine, " "); content = content.Replace((char)10, ' '); content = content.Replace((char)11, ' '); content = content.Replace((char)12, ' '); content = content.Replace((char)13, ' '); content = content.Replace("\t", ""); content = content.Replace(" ", ""); content = content.Replace("; ", ";"); content = content.Replace(": ", ":"); content = content.Replace(" {", "{"); content = content.Replace("{ ", "{"); content = content.Replace(" }", "}"); content = content.Replace("} ", "}"); } ok += content; //retorno += content; read.Close(); } else { ok += " not exist */"; } } } } catch (Exception ex) { retorno = "/* exception " + ex.ToString() + "*/"; } if (inline == true) { switch (tipo) { case FileTipe.css: retorno += ok + "</style>"; break; case FileTipe.javascript: retorno += ok + "</script>"; break; } } else { f.guardaDato(fichero, ok, "dat"); switch (tipo) { case FileTipe.css: retorno = "<link rel=\"stylesheet\" href=\"" + string.Format("/dat/" + fichero + "?v={0}", CacheExpire(0)) + "\" type=\"text/css\" />"; break; case FileTipe.javascript: retorno = "<script src=\"" + string.Format("/dat/" + fichero + "?v={0}", CacheExpire(0)) + "\"></script>"; break; } } f = null; return(retorno); }