javascript - url action ajax mvc 4
URL de imagen relativa en archivo Javascript-ASP.net MVC e IIS 7 (4)
Estoy desarrollando una aplicación Asp.net mvc, todo funciona bien en el servidor de desarrollo ASP.net, pero cuando intento alojarlo en IIS 7. Tengo problemas relacionados con la resolución de URL. He usado rutas relativas en Javascript para dar la imagen. El archivo de script está en ~ / Scripts / carpeta y los archivos de imagen están en ~ / Content / images / folder. Ahora, en el archivo javascript, intento usar el comando give dando la ruta relativa, como http: // localhost / WebApp1 / controller1 / action1 / y trata de encontrarla en http: // localhost / controller1 / action1 / couldn; t encuentra el archivo
Tuve el mismo problema y encontré una solución de elemento por David Banister. El problema es con la acción de índice del controlador de MVC que devuelve una URL en forma de (www.misitio.es/nombredevista, a diferencia de www.misitio.es/nombredevista/index) que el navegador web más tarde fallaría al tratar de hacer referencia a CSS. o archivos js que usan la sintaxis de ruta relativa (../../).
Su solución funciona bien para mí. Espero que esto ayude a alguien. Buena suerte.
http://blog.davidbanister.com/2010/09/28/mvc-fixes-relative-path-issues-in-asp-net-mvc-2/
Tratar:
<a href="~/controller1/action1/" id="testLnk" runat="server">
El atributo runat debe garantizar que el marco lo resuelva. También puede usar el método ResolveUrl.
Si la forma en que estoy leyendo esto es correcta, ¿ahora está ejecutando la aplicación web desde la raíz del dominio de IIS7 ahora en lugar de WebApp1 desde su entorno de desarrollo?
Entonces, si mi suposición es correcta, entonces ~ / debería resolverse en http: // localhost / en lugar de http: // localhost / WebApp1 /
Si todo sigue siendo correcto, entonces la estructura de su carpeta se ha movido un nivel con su carpeta ~ / scripts en la ruta absoluta:
http: // localhost / Scripts /
y su carpeta de imágenes como:
http: // localhost / Content / Images /
Para acceder a sus imágenes desde sus secuencias de comandos, puede usar una cantidad de métodos. Lo más simple es usar la ruta relativa de su directorio de scripts: "../Content/Images/MyImage.jpg"
O puede usar document.location.host para compilar el nombre completo de la ruta dentro de javascript: document.location.host + "/Content/Images/MyImage.jpg"
Otro método es hacer que ASP.NET cree esta parte de la secuencia de comandos dinámicamente para que se inyecte el nombre completo de la ruta. Puede hacerlo utilizando ScriptManager.RegisterStartupScript o ScriptManager.RegisterScriptBlock
Hay muchas maneras de despellejar a este gato, son solo los primeros 3 en los que puedo pensar.
He tenido este problema en el pasado, intente usar tilde
~ / controller1 / action1 /