我正在从.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
...
文件。浏览器控制台还会报告无法访问内容的错误,因此它如何选择样式有点令人困惑!
答案 0 :(得分:0)
不是这样的解决方案,我不得不启动一个新项目并复制文件的内容并且它有效。项目设置的唯一区别是我使用特定文件添加的_ViewImports.cshtml
等文件,而不是重命名视图。它看起来完全相同,所以我不知道幕后是否有原因。
答案 1 :(得分:0)
我有同样的问题。 在我的情况下,它与wwwroot文件夹下的权限有关。 对我有用的是: 右键单击Windows资源管理器中的wwwroot文件夹=&gt;属性=&gt;取消选中只读
答案 2 :(得分:0)
我的问题是,当我通过Visual Studio“客户端库”帮助器添加文件时,这些文件已被Source Control忽略。 Visual Studio在解决方案资源管理器中的文件上显示了一个红色的小图标,而不是蓝色的挂锁(我刚好错过了它)。
我右键单击lib文件夹,然后单击“将忽略的文件添加到源代码管理”。