Pregunta

Mi documento predeterminado está en la subcarpeta, no en la raíz, ¿cómo puedo hacerlo predeterminado en el sitio web asp.net 2.0?

Intenté la configuración predeterminada del documento iis7 en '/pages/default.aspx' '~ / pages / default.aspx' pero no funcionó.

¿Fue útil?

Solución

El documento predeterminado no es lo mismo que la página de inicio. Documento predeterminado significa que si solicité mysite.com/somefolder y no especifiqué un archivo, qué archivo debería mostrar IIS.

Si desea usar una página específica como su página de inicio, cree un archivo Default.aspx y escríbalo en su clase de código:

public override void ProcessRequest(HttpContext context) {
    context.Response.Redirect("pages/default.aspx", true);
}

Como el cliente podría haber deshabilitado Javascript, un enfoque del lado del servidor sería más confiable. Sin embargo, es mejor emitir una redirección permanente en lugar de una simple Response.Redirect . También hacerlo usando JS será malo desde el punto de vista de SEO.

Otros consejos

No es necesario crear una página Default.aspx ficticia.

En su archivo Global.asax.cs, escriba lo siguiente:

public void Application_Start(object sender, EventArgs e)
{
    var routeCollection = RouteTable.Routes;
    routeCollection.MapPageRoute("DefaultRoute", string.Empty, "~/YourDesiredSubFolder/YourDesiredDocument.aspx");
}

Explicación:

  • Se garantiza que el código Application_Start se ejecute una vez y solo una vez en el inicio de la aplicación.
  • La primera línea de código, obtiene una colección de las rutas URL para su aplicación.
  • La segunda línea de código, define una nueva ruta que apunta a su página interna en la subcarpeta que desea.
  • El segundo argumento está vacío para indicar que esta ruta se usa cuando no se solicita una página específica y no existe un documento predeterminado.

Los documentos predeterminados son una cosa específica de la subcarpeta: lo que intentas hacer no funciona (directamente). Configura un archivo default.htm en la raíz y haz que se actualice a tu " página de inicio " ;.

La mejor pregunta que deberías hacerte es cómo en el mundo tu página de inicio salió del directorio raíz.

En teoría, podría tener un archivo Web.config dentro del directorio y usar defaultDocument element para establecer el documento predeterminado. Consulte aquí: https://stackoverflow.com/a/2012079/125938 .
Desafortunadamente, no he podido hacer que funcione de forma local, pero es posible que porque no esté admitido en el servidor de desarrollo de Visual Studio.

Diga " index.html " es la página predeterminada que desea y está presente en " Público " subcarpeta.

En lugar de especificar " /Public/index.html" como el sitio predeterminado, intente " Public / index.html "

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top