ASP.NET Kern MVC: warum der Inhalt des wwwroot-Verzeichnis nicht kopiert?

Visual Studio 2017 (v15.4.4)

ASP.NET Kern MVC

Ich neu angelegt ASP.NET Core Web Application von der leeren Vorlage und füllte es. Aber wenn ich starten Sie das Debuggen sehe ich, dass meine CSS-Datei ist nicht zugänglich.

Die Seite für die web-Adresse wurde nicht gefunden http://localhost:51308/css/styles.css

HTTP-FEHLER 404

Warum passiert es und wie kann ich dieses problem lösen?

Stile.css:

.field-validation-error {color: #f00;}
.field-validation-valid {display: none;}
.input-validation-error {border: 1px solid #f00; background-color: #fee;}
.validation-summary-errors {font-weight: bold; color: #f00;}
.validation-summary-valid {display: none;}

RsvpForm.cshtml:

@model Razor.Models.GuestResponse
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, Razor

@{
    Layout = null;
}

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>RSVP Form</title>
    <link rel="stylesheet" href="~/css/styles.css"/>
</head>
<body>
    <div>
        This is RSVP form.
        <form asp-action="RsvpForm" method="post">
            <div asp-validation-summary="All"></div>
            <p>
                <label asp-for="Name">Your name:</label>
                <input asp-for="Name" />
            </p>
            <p>
                <label asp-for="Email">Your email:</label>
                <input asp-for="Email" />
            </p>
            <p>
                <label asp-for="Phone">Your phone:</label>
                <input asp-for="Phone" />
            </p>
            <p>
                <label>Will you attend?</label>
                <select asp-for="WillAttend">
                    <option value="">Choose an option</option>
                    <option value="true">Yes I'll be there</option>
                    <option value="false">No, I can't come</option>
                </select>
            </p>
            <button type="submit">Submit RSVP</button>
        </form>
    </div>
</body>
</html>

ASP.NET Kern MVC: warum der Inhalt des wwwroot-Verzeichnis nicht kopiert?

UPD

Ich umbenannt styles.css zu site.css – und shared in diesem Beispiel auf GitHub: hier ist der code von diesem Beispiel.

  • Was sehen Sie in Ihren browser-Konsole? vielleicht Ihr Weg ist nicht Recht.
  • In der Konsole sehe ich die Meldung: Failed to load resource: the server responded with a status of styles.css 404 (Not Found).
  • Abhängig von den bereitgestellten code von Github, müssen Sie den Kommentar aus der app.UseStaticFiles(); Linie um die wwwroot Ordner für statische Dateien



2 Replies
  1. 1

    Haben Sie 2 Probleme.

    1. Sie haben deactivcated laden von statischen Dateien im Autostart.cs Kommentieren app.UseStaticFiles(); Dies ist wichtig, das laden von javascript -, css -, html-und andere statische Dateien, wie Bilder aus Ihrem wwwroot-Ordner.
    2. Sollten Sie richtig lösen Ihre statischen Datei in Ihrem razor-Ansicht, mit @Url.Content(): <link href="@Url.Content("~/css/site.css")" />
      Nur mit „~/css/site.css“ kann funktionieren, wird aber nicht 100% der Zeit. Ich empfehle die Verwendung eines gemeinsamen Layout.cshtml, übernimmt das laden der css-Dateien für Sie.

    Wird dies Ihr Problem zu beheben

  2. 1
    1. Müssen Sie alle Feste-Dateien wie css, JQuery, js – und … in der wwwroot Ordner Zugreifen können. Dies ist ein Gesetz in Asp.Net Core.

    2. Auch, wenn Sie Ihr Projekt auszuführen, drücken Sie die Tastenkombination Strg + U, um die Anzeige Ihren code ein und klicken Sie auf den css-link. Die css-Befehle angezeigt werden muss. Apeer wurde nicht angezeigt, nach einem Klick werden Die Dateien nicht korrekt geladen.

    3. Standardmäßig wird eine Datei mit dem Namen site.css, die Sie schreiben müssen, der alle css-Befehle und Ihr Standort-style. Es verknüpft die _Layout Sie einen link zu Ihrem neuen css-Datei nach.

    4. Zu verknüpfen, ziehen Sie einfach die css-Datei von der solution Explorer und legen Sie es in die code-box

    Es ist kein anderer Fall

    • Aber meine CSS -Datei schon befindet sich in der wwwroot/css/ – Verzeichnis. Ich zeigte es auf meinem Bildschirm auf das Thema.
    • Ich bearbeitet meine Antwort. Bitte Lesen und verkünden das Ergebnis.
    • > Die css-Befehle angezeigt werden muss. Apeer wurde nicht angezeigt, nach einem Klick werden Die Dateien nicht korrekt geladen. ich habe es versucht, bevor ich das Thema. Es kann nicht finden, meine CSS-Datei. Ich schrieb über das Thema.
    • Ich erstellte ein neues Projekt wie das Ihre, aber alles funktioniert einwandfrei!!!
    • Ich fügte hinzu, die Update – Abschnitt mit dem link zu meinem code-Quellen. Es funktioniert nicht :(((
    • I aufgeführt, die wichtige Elemente für die Datei verknüpfen. Ihre codes sind auch nicht schlecht. Mögliche Formen sind aus anderen teilen des Projekts
    • Es ist ein einzelnes Projekt von meiner Lösung.
    • Es ist ein Brauch schreiben-Stile innerhalb site.css – Datei. Versuchen Sie, dem Beispiel zu Folgen.
    • Ich habe es in den code-Quellen, dass ich gemeinsam auf GitHub zu diesem Thema. Aber es hilft nicht.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.