2017-10-25 5 views
2

Ich mache den Wechsel von .Net zu Core 2 und anstatt Vorlagen von VS2017 zu verwenden, wollte ich eine App von Grund auf neu erstellen, um die Funktionsweise zu sehen. Ich verwende jedoch ein Vorlagenprojekt, um zu prüfen, ob ich nicht weiterkomme, aber ich kann nicht sehen, was das Problem verursacht.Core 2 MVC Zugriff auf wwwroot lib

Das Problem, das ich bekomme, ist, wenn ich die Webanwendung ausführen, keine der Inhalte von wwwroot/lib zugegriffen wird. Die Umwelt ist die Entwicklung, und die Verbindungen werden als solche innerhalb des Layouts angegeben:

<environment include="Development"> <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" /> <link rel="stylesheet" href="~/css/site.css" /> </environment>

Wenn ich die Links aus dem Umwelt-Element nehmen, können sie immer noch nicht zugegriffen werden, fiedler ich mit einem sehen kann 404 Fehler, aber die Dateien sind da.

Diese Dateien sind im Projekt vorhanden und werden über bower installiert. Die Dateien werden in der Datei bower.json referenziert. Die Datei .bowerrc gibt die wwwroot/lib als Speicherort für den Inhalt an.

Meine Configure Methode in der StartUp ist wie folgt:

`public void Configure(IApplicationBuilder app, IHostingEnvironment env) 
    { 
     if (env.IsDevelopment()) 
     { 
      app.UseDeveloperExceptionPage(); 
      app.UseBrowserLink(); 
     } 
     else 
     { 
      app.UseExceptionHandler("/Home/Error"); 
     } 

     app.UseStaticFiles(); 
     // to get cookie authentication to work 
     app.UseAuthentication(); 

     app.UseMvc(routes => 
     { 
      routes.MapRoute(
       name: "default", 
       template: "{controller=Home}/{action=Index}/{id?}"); 
     }); 
    }` 

Was diesen eingeschränkten Zugang zum wwwroot/lib verursacht sein könnte?

Edit 1:

Anfänge @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers nicht von _ViewImports arbeitet, aber ich konnte nicht sehen, warum, Bootstrap wurde an diesem Punkt arbeiten. Die einzige Änderung, die ich vorgenommen habe, war am Anfang der Layout-Datei, die alle Elemente funktioniert. Jedoch wurde nichts in der wwwroot/lib zugegriffen.

Keine große Sache, entfernt die @addTag aus dem Layout, und wwwroot konnte immer noch nicht zugegriffen werden. Ich habe seit Visual Studio neu gestartet, mehrere Umbauten und Säuberungen, aber nichts hat funktioniert. Seltsamerweise, seit Entfernen aus dem Layout funktioniert ViewImports ich denke, wie die Helfer immer noch funktionieren.

Edit 2:

Ich habe an einen Remote-II-Server veröffentlicht, und es wird mit dem richtigen Inhalt kein Problem ausgeführt wird. Aus diesem Grund habe ich IIS auf meinem lokalen Computer statt IIS Express installiert. Wenn ich dies im Debugger ausführe, wird immer noch nicht der richtige Inhalt gefunden.

bearbeiten 3:

nicht sicher, warum oder wie, aber _ViewImports.cshtml scheint das Problem zu sein. Wenn ich es entferne, nimmt die Anwendung das Styling auf, aber ich kann immer noch nicht über den Browser auf die Dateien .css. oder .js zugreifen. Die Browser-Konsole meldet auch Fehler, dass auf den Inhalt nicht zugegriffen werden kann, daher ist es etwas verwirrend, wie das Styling übernommen wird.

+1

Dies wird tatsächlich von der Funktion 'UseStaticFiles()' hinzugefügt. Sind Sie sicher, dass Sie nach dem Hinzufügen dieser Funktion gereinigt und kompiliert wurden? –

+0

Weitere Informationen zu diesem Ordner hier: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files –

+0

@NevilleNazerane - Ja, ich habe sauber und mehrmals umgebaut. Das ist die Funktion, von der ich dachte, dass sie dafür verantwortlich ist. Es funktioniert jedoch nicht, wenn ich '@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers' in das Layout eingefügt habe, als _ViewImports nicht funktionierte. Dann begannen die asp-Elemente zu arbeiten, also entfernte ich das _Layout, aber ich kann jetzt nicht auf die lib zugreifen. Vielleicht Neustart VS/PC wird es beheben ... – PurpleSmurph

Antwort

0

Keine Lösung als solche, ich musste ein neues Projekt starten und den Inhalt der Dateien kopieren und es funktionierte. Der einzige Unterschied zum Projektaufbau waren Dateien wie _ViewImports.cshtml, die ich mit der spezifischen Datei hinzugefügt habe, nicht um eine Ansicht umzubenennen. Es sieht identisch aus, daher weiß ich nicht, ob dahinter Gründe liegen.

Verwandte Themen