script net mvc minification cssclass asp and c# asp.net css configuration

c# - mvc - Configuración dinámica de valores de CSS utilizando ASP.NET



c# mvc bundle (7)

¿Es una opción mantener el archivo CSS en el servidor de imágenes? Si eso es posible, puede hacer que todas las referencias de imagen sean relativas, y luego solo necesita actualizar el enlace al archivo css.

<link rel="stylesheet" href="<%= ConfigurationManager.AppSettings("css-server") %>style.css" />

Si aún desea enviar o generar un archivo css de forma dinámica:

los archivos css no tienen que terminar en css. aspx está bien. Podrías hacer esto:

<link rel="stylesheet" href="style.aspx" />

y luego en tu página style.aspx:

protected void page_load(){ Response.ContentType = "text/css"; if (ConfigurationManager.AppSettings("css-server") == "local") { Server.Transfer("css/local.css"); } else { Server.Transfer("css/production.css"); } }

Si aún desea generar dinámicamente un archivo css, usaría un HttpHandler, establecería el tipo de contenido en "text / css" y luego generaría el css con Response.Write. Si insistes en que la página termine en CSS, siempre puedes registrar css para ir a asp.net en IIS, luego a las solicitudes entrantes en global.asax application_Begin request, si el archivo termina en .css, usa httpcontext.current.rewritepath a su controlador.

Esto tendrá un efecto neto de style.css generado dinámicamente en tiempo de ejecución.

Estoy trabajando en un sitio donde las imágenes y otros recursos se ubicarán en un dominio separado del contenido principal del sitio. Usaremos algo como ''www.example.com'' para el sitio principal, y luego ''images.example.com'' para todos los recursos adicionales para estilos, etc.

Al desarrollar el sitio, mantendré todos estos recursos en el desarrollador local. máquinas. El desafío aquí es mantener las referencias CSS consistentes entre el servidor de producción y los entornos de desarrollo.

Lo que estaba pensando hacer era crear una clave web.config que almacenara la URL del servidor de imágenes. Luego, cuando cambie de desarrollo a producción, podría cambiar el valor de web.config y todo se haría.

¿Hay alguna manera de agregar un valor a un archivo CSS, dinámicamente o no, desde algún lugar en una configuración o clase C #? ¿O estoy yendo sobre esto de la manera incorrecta?

Además, estoy limitado a usar .NET 2.0 si eso hace la diferencia.

ACTUALIZAR
Para ampliar esto un poco más, sé que puedo usar una configuración web.config para las URL de los controles del servidor. Esos ya están generados dinámicamente. Lo que más me interesa es qué opciones tengo para modificar (o hacer " algo ") en archivos CSS estáticos que me permitirán cambiar las URL de elementos como los recursos de imágenes de fondo a los que se hace referencia en CSS. ¿Hay algo que pueda hacer además de encontrar / reemplazar los valores usando mi IDE? ¿Quizás algo que pueda hacerse automáticamente con un script de despliegue?


¿Qué tal poner un marcador de posición en la página web y luego seleccionar qué archivo CSS utilizar (PROD, TEST, etc.) en tiempo de ejecución y agregarlo al hodler de lugar?

Creo que Update tuvo la idea correcta ...

<link rel="stylesheet" href="<%= ConfigurationManager.AppSettings("css-server") %>style.css" />


Crearía un control de servidor para mi CSS que registró el bloque de script css en la carga de la página. Podrías cambiar fácilmente todas las rutas en ese punto programáticamente.


Este es un problema común. Lo que hacemos es tener archivos web.config separados para cada entorno. Hay una clave appSettings en el web.config y los valores de configuración van allí así.

<appSettings> <add key="ImagePath" value="d:/websites/www.site.com/www/images/" /> <appSettings>

Cuando configure el control de imagen en el código de atrás, use lo siguiente:

myImage.ImageUrl = + _

System.Configuration.ConfigurationSettings.AppSettings ("ImagePath") + "image1234567890.jpg"

Simplemente cambie su clave de ImagePath para que se corresponda con la ruta de los servidores de producción o qa. Además, puede hacer que el servidor de prueba tenga la misma ruta, pero en mi experiencia esta solución funciona.


Suena como un trabajo para un guión NAnt [ link ] para mí. Son bastante fáciles de trabajar y están bien documentados.

De esta manera, su código no cambia sus enlaces css, sino que se actualizan en el momento del despliegue. Esto no es un problema de código, es un problema de implementación, por lo que abordarlo como tal me parece más "correcto". De esta forma, sabrá si se carga correctamente (con las imágenes correctas) la primera vez que se cargará todas las veces. Los scripts NAnt son una buena cosa para tener en su caja de herramientas.

Las otras soluciones funcionarán, pero ese código se ejecutará cada vez que la página se cargue para un cambio que debería haber ocurrido una vez: cuando se implementó la aplicación.


¿Quizás pueda hacer algo con el archivo hosts en su (s) servidor (es) de desarrollo? De esa forma no tendrá que cambiar ningún código en realidad.

Sin embargo, es posible enviar archivos con la extensión .css a través del motor asp.net. También podría tener gestores .ashx que devuelvan CSS válido y hacer referencia a esos controladores en las etiquetas. Parece una especie de desperdicio de procesador para cosas con un 90% de texto estático.