0

在遇到 ASP.NET 和依赖关系以及与数据库的连接问题后,我已成功将 MVC 应用程序部署到 IIS 7.5 (Windows Server 2008 R2)。我使用了“默认网站”的导入应用程序功能。

这是我第一次设置 IIS,请多多包涵。

它设置在本地主机/系统。现在,我看到路由可以正常工作,因为 localhost/System (only /) 提供了我的欢迎视图,单击登录 (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)+壁虎/20100101+火狐/15.0.1 404 0 2 78

因此,正在加载 site.css,但不是我的背景图片,它的路径缺少“SYSTEM”文件夹。我在我的 site.css 中这样引用它:

background-image: url('/Content/drock028.jpg');

所以,大多数东西都有好的 url,但不是我的背景图片,也不是从数据库 url 调用控制器操作。

但是,我该怎么办?我不能在数据库中使用 URL 助手,也不能在 java 脚本中使用它(或者我可以)?

4

1 回答 1

1

对于第一个问题(数据库中的 URL),我会说将值保留为/Controller/Action格式,但更新您的视图以呈现应用程序相对 URL:

@Url.Content("~" + url)

(因此,如果数据库中的 url 是/Home/Index,上面将给出@Url.Content("~/Home/Index"),它将呈现/System/Home/Index。)

对于第二部分,正如 Nick 所指出的,查看 Firebug 中的Network选项卡以查看 CSS 文件实际请求的 URL 可能会有所帮助(以及它是否得到 404/Not Found 或其他)。您的 CSS 路径代码是正确的,因此可能是 IIS 配置的问题。

于 2012-09-09T05:47:50.137 回答