由于业务需要,笔者刚进到一个项目组,由于没有美工,前台采用ExtJs + MVC 2 ,迭代1的项目做的还算比较顺利,至少在本机上是运行没有任何问题的,
但是为了给客户演示,我兴高采烈的将网站部署在IIS 上,结果总是提示'Ext'未定义'。通过Google浏览器,按了F12调试,发现时ExtJs路径引用问题,在
vs里运行正常,怎么发布之后,就出现这种情况? 仔细查看路径,是相对路径,我想这就是问题的症结所在了。
于是大胆Google,手气不错,还是有关于MVC部署的解决方案,但是试过了N多次之后,仍然毫无改观。
由于未能解决,项目进度压身,项目组开始打算换框架,他们希望采用WCF,放弃NVC——因为这样就避免了相对路径,他们有现成的成功案例。
这让我情何以堪啊?辛辛苦苦干了二十多天的心血,转到WCF,代码改的也不少啊,实话实说,.NET NVC 用着真舒服!
一边开始转项目,一边又对MVC不放弃,果然功夫不负有心人,终于有了比较满意的解决方案!
以下是一些具体记录,愿与大家分享,希望对遇到类似问题的后来者有一点帮助,反正我是走了不少弯路,呵呵!
我的项目目录结构如下:
再看 ExtJs的位置
以下是最初对ExtJS 的引用路径,这种引用时相对路径,在VS2010调试没有问题,部署在IIS5.0和IIS6.0均提示'Ext未定义'
这样并不能部署成功,使用Google浏览器后,F12调试发现时extjs、css之类的路径引用问题。
以下是参考了相关资料并且实践成功的解决方案,
<%=Url.Content("") %>
这样我们就可以在引用路径和js中更改url(或src)
于是修改如下
好了,说道这里是不是太罗嗦了,让我们来一步一步部署吧!
第一步。请安装IIS,这个省略,我本机安装的是IIS5.1 版本。
当您安装IIS成功后,在控制面板——管理工具中会出现
第二步。发布网站,
打开你的项目,请确保你的重新生成是成功的。
点击项目,右键——》发布,如下图,
按上面的填好,单击"发布",看vs下面菜单栏提示,会提示是否发布成功。
发布成功后,打开C:\Inetpub\wwwroot 你会看到你发布的网站文件,这里是Test
第三步,打开IIS
默认网站下会出现,Test虚拟目录,基本上大功告成了。
最后,在浏览器中输入地址:http://localhost/Test 即可
效果如下
转载原文:http://blog.knowsky.com/270414.htm