Asp.net mvc4 发布到IIS问题
mvc4的项目部署到IIS上发现问题
1、所有的CSS,和JS引用都失效。
后来用Chrome跟踪调试发现原来是引用路径找不到了。
比如一个CSS文件引用../../Content/Style/demo.css,在本机调试路径是:
http://localhost:13321/Content/Style/demo.css
这样是没有问题的,但是部署到IIS上引用就成了
http://172.20.168.56:8080/Content/Style/demo.css
这样是访问不了的,后来调试发现正确的引用地址应该是
http://172.20.168.56:8080/QSMC.EIT/Content/Style/demo.css
解决方案:是把引用文件的路径改成相对应于网站根目录的路径。就是把../../Content/Style/demo.css改成 @Url.Content("~/Content/scripts/miniui/themes/blue/skin.css"),这样就行了。
2、js文件中的Ajax请求路径也出现了这样的问题,js文件和.cshtml文件是分开放的,ajax中不识别
@Url.Content("“)这样的语法。
比如一个一个js请求我是这样写的正确的/Dispatch/SaveDispatchHeader,在本机调试是http://localhost:13321/Dispatch/SaveDispatchHeader,没有任何问题,
但是部署到iis上后就成了http://172.20.168.56:8080/Dispatch/SaveDispatchHeader
想要的结果是http://172.20.168.56:8080/qsmc.eit/Dispatch/SaveDispatchHeader。
这样的话,所有的ajax请求都会失效。。。。。。
解决方案:
在.cshtml文件中,创建一个方法,获取网站根目录和虚拟目录方法。
{
// var path = '@Request.ApplicationPath'; //if (path != '/')
// path = path + '/'
var newUrl;
if (vir != '/') {
newUrl = path + vir + url;
}
else {
newUrl = path + url;
}
// alert(newUrl);return newUrl;
}
</script>
在js文件中调用
url = GetUrlAndVirtualPath('/contact/getList');
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫