在ASP.NET和依赖项以及与数据库的连接出现问题之后,我已成功将MVC应用程序部署到IIS 7.5(Windows Server 2008 R2)。我使用了“默认网站”的导入应用程序功能。
这是我第一次设置IIS,所以请耐心等待。
它在localhost / System中设置。现在,我看到路由有效,因为localhost / System(只/)给出了我的欢迎视图,点击login(localhost / System / Account / Login - / Accounts / Login)会提示我登录视图。
登录从数据库填充菜单,所有菜单项都采用以下格式:/ Controller / Action / Values。当我单击菜单中的项目时,IIS发出请求localhost / Controller / Action - WITHOUT 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 - :: 1 Mozilla / 5.0 +(Windows + NT + 6.1; + WOW64; + rv:15.0)+ Gecko / 20100101 + Firefox / 15.0.1 200 0 0 31 GET /SYSTEM/Content/Site.css - 80 - :: 1 Mozilla / 5.0 +(Windows + NT + 6.1; + WOW64; + rv:15.0)+ Gecko / 20100101 + Firefox / 15.0.1 200 0 0 31 GET /SYSTEM/Scripts/modernizr-1.7.min.js - 80 - :: 1 Mozilla / 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.Office2007.min.css - 80 - :: 1 Mozilla / 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 - :: 1 Mozilla / 5.0 +(Windows + NT + 6.1; + WOW64; + rv:15.0)+ Gecko / 20100101 + Firefox / 15.0 .1 200 0 0 46 GET /SYSTEM/Scripts/jquery-1.5.1.min.js - 80 - :: 1 Mozilla / 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 - :: 1 Mozilla / 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/telerik.menu.min.js - 80 - :: 1 Mozilla / 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 - :: 1 Mozilla / 5.0 +(Windows + NT + 6.1; + WOW64; + rv:15.0)+ Gecko / 20100101 + Firefox /15.0.1 200 0 0 31 GET /Content/drock028.jpg - 80 - :: 1 Mozilla / 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 / Home / Test - 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');
所以,大多数事情都会得到很好的网址,但不是我的背景图片,也不是从数据库网址调用控制器操作。
但是,我该怎么办?我不能在数据库中使用URL帮助器,也不能在java脚本中使用它(或者我可以)?
答案 0 :(得分:1)
对于第一个问题(数据库中的URL),我会说保留值格式为 / Controller / Action ,但更新视图以呈现应用程序相对URL:
@Url.Content("~" + url)
(所以如果数据库中的网址是 / Home / Index ,上面会给出 @ Url.Content(“〜/ Home / Index”),将呈现 / System / Home / Index 。)
对于第二部分,正如Nick所说,查看Firebug中的 Network 选项卡可能有助于查看实际为CSS文件请求的URL(以及它是否获得404 /找不到,或其他东西)。您的CSS路径代码是正确的,因此可能是IIS配置的问题。