Frage

Ich habe eine Seite ASP.NET MVC und es funktioniert gut, wenn ich es lokal ausgeführt. Sobald ich diese Seite zu IIS 7 alle Links zu Ressourcen bereitstellen gebrochen (dh. Script-Dateien, Bilder, CSS-Dateien). Könnte dies ein Weg Problem sein, oder wäre es eine IIS-Einstellung sein?

Hier sind meine Routen:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("elmah.axd");
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        "Search",
        "Basic/Page/{page}",
        new { controller = "Search", action = "Basic" }
    );

    routes.MapRoute(
        "Default",                                                                          // Route name
        "{controller}/{action}/{id}",                                                       // URL with parameters
        new { controller = MVC.Welcome.Name, action = MVC.Welcome.Actions.Index, id = "" }  // Parameter defaults
    );
}

EDIT:

Referenz ich alle Inhalte T4MVC Vorlage. Die Vorlage ist korrekt, wenn es die Pfade mit ~ / content / angibt. Das Problem ist, dass, wenn die HTML erzeugt wird, die Ausgabe enthält nicht das „~“ es ist nur / content /.

<img src="<%= Links.Content.Images.logo_png %>" alt="Logo" />

<img src="/Content/Images/logo.png" alt="Logo" />

Hinweis:

Die Frage war eigentlich, dass es etwas falsch mit dieser Linie in web.config ist. Stellt sich heraus, dem 1. Januar 2011 ist kein Freitag aber Samstag. Aus irgendeinem Grund hat es immer noch nicht, wie die Linie.

<clientCache httpExpires="Fri, 1 Jan 2011 15:30:00 UTC" cacheControlMode="UseExpires"/>

Ändern es zu dieser funktioniert gut;

<clientCache cacheControlMode="UseExpires" httpExpires="Tue, 19 Jan 2038 03:14:07 GMT" />

es hier in der Hoffnung hinzu, dass es andere mit diesem Problem hilft.

Danke!

War es hilfreich?

Lösung

Es ist unwahrscheinlich, dass eine Route oder IIS-Einstellung zu sein. Die Zeiten, habe ich gesehen, dies ist in der Regel, weil entweder die Ressourcen nicht verfügbar sind, dh nicht da.

Auch manchmal Sicherheit auf den Ordner (n) Sie versuchen, Zugriff gesetzt wurde und die Standard-.net Benutzer wurde kein Zugang gewährt.

Pfade zu den Ressourcen sind nicht richtig codiert. mit ~ / content statt / Inhalt oder sogar ../../..etc helfen könnte.

Andere Tipps

Stellen Sie sicher, dass die Build-Aktionen auf Inhalt festgelegt werden.

Versuchen Sie Ordnerberechtigungen überprüft - sind Sie in einem Nicht-Standard-Ordner (nicht wwwroot)? Stellen Sie sicher, dass die IIS_IUSRS Gruppe hat Lese- und Ausführberechtigungen auf den Ordner und Unterordner. Wenn das nicht funktioniert, versucht, die Berechtigungen, um vorübergehend geben Vollzugriff zu jeder Person zu ändern, nur um zu sehen, ob es überhaupt ein Problem mit den Berechtigungen ist.

Nicht sicher verstehe ich das Problem. Es wäre für T4MVC zur Ausgabe des ~ / Pfad zum Client falsch sein, da ~ / a Syntax Server-Seite ist, dass Browser nicht verstehen. Beachten Sie, dass Sie diese Verarbeitung ändern, wenn Sie, indem Sie auf T4MVC.settings.t4 mögen, die hat:

// You can change the ProcessVirtualPath method to modify the path that gets returned to the client.
// e.g. you can prepend a domain, or append a query string:
//      return "http://localhost" + path + "?foo=bar";
private static string ProcessVirtualPathDefault(string virtualPath) {
    // The path that comes in starts with ~/ and must first be made absolute
    string path = VirtualPathUtility.ToAbsolute(virtualPath);

    // Add your own modifications here before returning the path
    return path;
}

So können Sie es machen zurückgeben, was Sie wollen, aber ich glaube nicht, das ~ / Pfad zurückkehren wird Ihnen helfen.

Ich kann das Problem ein wenig sein Mißverständnis.

Gehen Sie zu Ihrer Website oder Web Application -> Authentifizierung -> Aktivieren der anonymen Authentifizierung. Wenn dies funktioniert, können Sie so lassen, wenn Sie sind in Ordnung mit ihm, oder richtig die Berechtigungen anpassen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top