Core 2 MVC无法访问wwwroot lib

时间:2017-10-25 10:09:43

标签: c# asp.net-core

我正在从.Net切换到Core 2.而不是使用VS2017提供的模板我想从头创建一个应用程序以查看工作情况。然而,我正在使用模板项目来检查我何时遇到问题,但我无法看到导致访问问题的原因。

我遇到的问题是,当我运行Web应用程序时,没有访问wwwroot/lib中的任何内容。环境是开发,链接在布局中指定为:

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

如果我从环境元素中取出链接,它们仍然无法访问,使用fiddler我可以看到404错误,但文件在那里。

这些文件存在于项目中,通过bower安装,文件在bower.json文件中引用。 .bowerrc文件指定wwwroot/lib作为存储内容的位置。

StartUp中的Configure方法如下:

    `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?}");
        });
    }`

可能导致对wwwroot/lib的限制访问的原因是什么?

修改1:

最初@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers _ViewImports没有在@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers工作,但我无法理解为什么,bootstrap在这一点上正在工作。我做的唯一更改是在布局文件的顶部添加asp-,这使得所有wwwroot/lib元素都起作用。但是@addTag中没有任何内容可供访问。

没什么大不了的,从布局中移除了@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers,并且仍然无法访问wwwroot。我重新启动了视觉工作室,多次重建和清理,但没有任何工作。奇怪的是,自从布局中删除asp-后,我认为ViewImports正在工作,因为_ViewImports.cshtml助手仍在运行。

编辑2:

我已经发布到远程IIS服务器,它运行正确的内容没问题。考虑到这一点,我在本地计算机上安装了IIS,而不是IIS Express。当我在调试中运行它时,它仍然没有找到正确的内容。

编辑3:

不确定为什么或如何,但.css.似乎是个问题。如果我删除它,应用程序会选择样式,但我仍然无法通过浏览器访问.js... manyToMany: attributes: targetEntity: Attributes cascade: ['persist'] joinTable: name: person_attribute joinColumns: person_id: referencedColumnName: id inverseJoinColumns: attribute_id: referencedColumnName: id ... 文件。浏览器控制台还会报告无法访问内容的错误,因此它如何选择样式有点令人困惑!

3 个答案:

答案 0 :(得分:0)

不是这样的解决方案,我不得不启动一个新项目并复制文件的内容并且它有效。项目设置的唯一区别是我使用特定文件添加的_ViewImports.cshtml等文件,而不是重命名视图。它看起来完全相同,所以我不知道幕后是否有原因。

答案 1 :(得分:0)

我有同样的问题。 在我的情况下,它与wwwroot文件夹下的权限有关。 对我有用的是: 右键单击Windows资源管理器中的wwwroot文件夹=&gt;属性=&gt;取消选中只读

答案 2 :(得分:0)

我的问题是,当我通过Visual Studio“客户端库”帮助器添加文件时,这些文件已被Source Control忽略。 Visual Studio在解决方案资源管理器中的文件上显示了一个红色的小图标,而不是蓝色的挂锁(我刚好错过了它)。

我右键单击lib文件夹,然后单击“将忽略的文件添加到源代码管理”。