如何解决即使修改了applicationHost.config
我正在建立一个网站,但遇到了无法访问/下载某些文件扩展名(例如.py
,.cs
)的问题。例如,当我请求获取.cs文件时。
fetch("https://localhost:44310/userdata/texts/7/637381399366309280.cs")
.then(resp => resp.blob())
.then(blob => {
success(blob)
})
.catch((res) => alert('oh no!'));
userdata
文件夹是wwwroot
文件夹的直接子级。 success
是将Blob转换为文本的函数。对于.txt
文件(与.cs文件位于同一文件夹中),一切正常,我得到了.txt文件包含的确切文本。但是对于.cs
文件,我得到了标记文本-网站的index.html。奇怪的是oh no!
没有被警告。我尝试使用托管在github上的一些随机.cs文件,它运行良好。
最初,我得到了一个完整的404。当我尝试在浏览器中打开链接(https://localhost:44310/userdata/texts/7/637381399366309280.cs
)时,得到以下页面:
我做了一些研究,找到了applicationHost.config并删除了所有过滤后的扩展,如下所示:
<requestfiltering>
<fileExtensions allowUnlisted="true" applyToWebDAV="false">
<!--empty-->
</fileExtensions>
....
</requestfiltering>
现在我不再有404了。但是success(blob)
返回标记文本-我网站的index.html。 (我使用Reactjs,并且我注意到当获取出现问题时会发生这种情况。)当我尝试在新标签页中打开url时,我再也没有出现requestfiltering
错误页面了。而是会加载网站的主页。
所以我真的很困惑。我没有404,但似乎也没有得到该文件。修改requestfiltering
改变了一些东西,但是似乎还有其他事情要做。请帮忙。
解决方法
事实证明,除了在applicationHost.config文件中编辑<requestFiltering>
之外,我还必须在startUp类中ServeUnknownFileTypes
。
app.UseStaticFiles(new StaticFileOptions
{
ServeUnknownFileTypes = true,DefaultContentType = "text/plain"
});
查看this answer了解更多信息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。