首页 新闻 搜索 专区 学院

ASP.Net Core 发布后,静态资源访问不了

0
悬赏园豆:5 [待解决问题]

程序在发布后 用dotnet xxx.dll的方式运行,所有的静态资源都访问不了,比如网页中引用的图片,css,js都访问不了。这些资源在发布后文件夹下的wwwroot下面是存在的,可是访问不了。

hanshuhe的主页 hanshuhe | 初学一级 | 园豆:3
提问于:2020-02-11 17:08
< >
分享
所有回答(2)
0

如果部署在 linux 上,需要注意大小写问题。

dudu | 园豆:38908 (高人七级) | 2020-02-11 17:16

是 windows上部署的

支持(0) 反对(0) hanshuhe | 园豆:3 (初学一级) | 2020-02-11 19:32

@hanshuhe: wwwroot 文件夹与 xxx.dll 是在同一个文件夹吗?

支持(0) 反对(0) dudu | 园豆:38908 (高人七级) | 2020-02-11 19:39
1

你的运行方式会导致进程的工作目录指向 cmd 提示的目录,如果不是在与 wwwroot 相同的目录下调用 cmd 会导致无法找到文件,因为 asp.net core 的默认内容根目录是进程工作目录。如果希望 cmd 不会影响网站工作状态,可以在 Main 方法开始处调用 System.IO 中的相关 API 设置进程工作目录为主 dll 目录再创建主机(wwwroot 文件夹默认和主 dll 在相同文件夹,主 dll 目录可以反射获取)。注意在调试模式下不要修改,不然会导致调试模式下静态资源404。可以使用条件编译确保只在发行模式执行工作目录调整的相关代码。

coredx | 园豆:611 (小虾三级) | 2020-02-23 00:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册