我的一个网站原来是使用一个域名(假如是www.somenet.com),但因为某种原因,我需要将网站移至“www.somenet.com/dh” 里面,由此引出了一大堆路径问题,原来的css文件和脚本文件的引用是使用绝对虚拟路径的,也就是例如“<link src='/css/style1.css' />”,现在就要改成“<link src='/dh/css/style1.css' />”,但这个网站中好几千个css,js引用,这样改动是最直接的办法但肯定不是最合理的办法。我应该怎样去设置?能不能将虚拟根路径"/"映射到"/dh"下面?
很简单,在你原来的网站下面建立一个 dh 的虚拟目录,然后把你的网站拷贝到此 dh 下,例如:
假设你原来的网站的目录是 C:\somenet
新的目录为:C:\somenet\dh
额。。兄台是不是理解错了?我的意思是:我将网站“www.somenet.com”从放到“www.somenet.com/dh”,结果所有的css和js和图片的路径都有问题,但我又不想去逐个css,js的引用路径该(即使是使用查找/替换,因为极有可能改不完全,因为可能c#代码里或者别的地方写法是匹配不到的)。
最好办法是对路径进行映射,让/css/style1.css自动定向到/dh/css/style1.css
@柯柏文: 我的意思是,我假设你的IIS中有个网站叫着www.somenet.com,其物理路径为:C:\somenet,在C:\somenet新建一个目录 dh,把 C:\somenet 下的所有文件都剪切到 C:\somenet\dh 下,然后你在网站www.somenet.com下新建一个应用程序 dh,其物理路径为C:\somenet\dh。
使用工具批次替换下吧 (Notepad|Notepad++或Visual Studio)
'/css 替换为 '/dh/css
eg:在Visual studio ctrl+shift+f 调出下面窗体
一劳永逸的办法,不要使用"/css"这样的路径引用,而应该使用“域名变量/css”这种方式来引用
把域名变量在web.config中来配置,这样下次再发生更改只需要把这个变量值换掉就行了
重新部署一下你的网站不就行了啊
实在不行就在更目录下见上css和js的虚拟目录指向/dh/css/style1.css,不过根目录用同样的目录名称会冲突。
支持重新部署下网站
只要在head部分添加<base href="http://www.somenet.com/dh/"/>即可。如果你用到了模板,那么只要添加到模板中,更加方便。