我已经成功地将MVC应用程序部署到了IIS7.5 (Windows Server2008MVC),在使用ASP.NET、依赖和连接到数据库时遇到了一些问题。我使用了“默认网站”的导入应用程序功能。
这是我第一次安装IIS,请耐心等待。
它设置在localhost/System上。现在,我看到路由是有效的,因为localhost/System (only /)给出了我的欢迎视图,并且单击login (localhost/System/Account/Login - /Accounts/ login )提示我登录视图。
登录从数据库填充菜单,所有菜单项的格式为: /Controller/Action/Values。当我单击菜单中的项目时,IIS发出一个请求localhost/Controller/Action --没有System。当我在请求中间手动添加系统时,它很自然地工作。
我该如何解决这个问题呢?
我可以很容易地更改数据库中的菜单来添加/System前缀,但我在整个网站上都有大量相同的java脚本硬编码地址。这也意味着我在部署之前硬编码了站点的名称,我不喜欢这样。
而且,我的站点完全是白色的,好像IIS无法读取我的site.css文件。它位于/Content文件夹下,我的站点如下引用它:
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" /> 你有什么建议,我该如何解决这个问题?
更新:
我一直在查看IIS日志,这里有几行: GET /SYSTEM/Scripts/LookupJunction.js - 80 -::1Mozilla 200 0 0 31 GET /SYSTEM/Content/Site.css - 80 -::1Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:15.0)+Gecko/20100101+Firefox/15.0.1 200 0 0 31 GET /SYSTEM/Scripts/现代-1.7.min.js- 80 -::1Mozilla 200 0 0 31 GET /SYSTEM/Content/2012.1.214/telerik.Office2007.min.css - 80 -::1Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:15.0)+Gecko/20100101+Firefox/15.0.1 200 0 0 31 GET /SYSTEM/Content/2012.1.214/telerik.common.min.css - 80 -::1Mozilla 200 0 0 46 GET /SYSTEM/Scripts/jquery-1.5.1.min.js - 80 -::1Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:15.0)+Gecko/20100101+Firefox/15.0.1 200 0 0 46 GET /SYSTEM/Scripts/2012.1.214/telerik.common.min.js - 80 -::1Mozilla 200 0 0 15 GET /SYSTEM/Scripts/2012.1.214/telerik.menu.min.js - 80 -::1Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:15.0)+Gecko/20100101+Firefox/15.0.1 200 0 0 15 GET /SYSTEM/Scripts/2012.1.214/jquery-1.7.1.min.js - 80 -::1Mozilla 200 0 0 31 GET /Content/drock028.jpg - 80 -::1Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:15.0)+Gecko/20100101+Firefox/15.0.1 404 0 2 0 GET /SYSTEM/Content/2012.1.214/Office2007/sprite.png - 80 - ::1 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:15.0)+Gecko/20100101+Firefox/15.0.1 200 0 0 15 GET /主页/测试- 80 - ::1 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:15.0)+Gecko/20100101+Firefox/15.0.1 404 0 2 78
所以,site.css正在加载,但不是我的背景图像,它的路径缺少'SYSTEM‘文件夹。我在site.css中是这样引用它的:
background-image: url('/Content/drock028.jpg');因此,大多数东西都得到了很好的urls,但我的背景图片却没有,也没有从数据库urls调用控制器操作。
但是,我该怎么办呢?我不能在数据库中使用URL助手,也不能在java脚本中使用它(或者我可以吗)?
发布于 2012-09-09 13:47:50
对于第一个问题(数据库中的URL),我建议保留/Controller/Action,格式的值,但更新视图以呈现与应用程序相关的URL:
@Url.Content("~" + url)(因此,如果数据库中的url是/Home/Index,则上面的代码将提供呈现/System/Home/Index.)的@Url.Content("~/Home/Index"),
对于第二部分,正如Nick所指出的,查看Firebug中的Network选项卡可能会有所帮助,以查看CSS文件实际上请求的是哪个URL (以及它是否得到了404/Not Found或其他值)。CSS路径的代码是正确的,因此这可能是IIS配置的问题。
https://stackoverflow.com/questions/12336761
复制相似问题