2012-09-09 44 views
0

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

这是我第一次设置IIS,所以请耐心等待。

它在localhost/System上设置。现在,我看到路由工作,因为localhost/System(only /)给出了我的欢迎视图,并且单击登录(本地主机/系统/帐户/登录 - /帐户/登录)会以登录视图提示我。

登录从数据库中填充菜单,所有菜单项均采用以下格式:/ Controller/Action/Values。当我在菜单中单击项目时,IIS发出请求localhost/Controller/Action - WITHOUT System。当我在请求中手动添加系统时,它自然会起作用。

我该如何解决这个问题?

我可以很容易地改变数据库中的菜单添加一个/系统前缀,但我有大量相同的硬编码地址在Java脚本周围的网站。这也意味着我在部署之前对网站的名称进行了硬编码,而我不喜欢这样。

此外,我的网站是完全白色的,好像IIS无法读取我的site.css文件。它位于/内容文件夹,我的网站像这样引用它:

<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" /> 

你有什么建议,我该如何解决前人的精力呢?

UPDATE:

我一直在寻找,虽然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 + 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'文件夹。我在我的网站中像这样引用它。CSS:

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

所以,大部分的东西得到良好的网址,而不是我的背景图片,而不是调用控制器从数据库URL行动。

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

+1

那么如果你的CSS文件不工作,我会做的第一件事就是使用萤火虫或铬检查器来看看发生了什么。文件没有被提供吗?路径是否被正确解析?像这样的答案可能会导致你回答其他问题。 –

回答

1

对于第一个问题(在数据库中的网址),我会说离开值格式/控制器/动作,但更新您的意见,以使应用程序相对URL:

@Url.Content("~" + url) 

(所以,如果从数据库的URL是/首页/指数,上面会给@ Url.Content( “〜/首页/索引”),这会使/系统/首页/指数

对于第二部分,正如Nick指出的那样,它可能有助于查看Firebug中的Network选项卡,以查看哪个URL实际上被请求用于CSS文件(以及是否获取404/Not Found或其他内容) 。您的CSS路径代码是正确的,所以它可能是IIS配置的问题。

+0

谢谢,我很清楚它会完美地工作。那么Java脚本怎么样,我该如何解决这些问题? –

+0

@MilosMijatovic对于Javascript/CSS中的URL,应该可以使用静态相对路径,比如'url('drock028.jpg')'或'url('../ Content/drock028.jpg')'等。 – McGarnagle

+0

非常感谢。欣赏它。 –