0

我在 Visual Studio 2010 中开发了一个 Asp.Net MVC 应用程序。到目前为止一切顺利。在图像和脚本执行的路径分辨率方面,一切都在 Visual Studio 中完美运行。当我使用 MVC 的默认模板时,我使用的是“../../Script/ *.js”类型的路径。在我构建用于部署的包并在 IIS 中部署后,图像和脚本引用停止工作。我认为这可能是路径解析问题。我尝试使用“~/Script/.js”,但它也不起作用。有人可以提出为什么会这样吗?

4

3 回答 3

3

考虑在您的任何 asp.net MVC 项目中使用两件事。

1) 使用 _Layout.cshtml 为常见站点元素使用布局,并在其中包含所有 javascript 和 css 文件,除非必要,否则不要将其放在任何其他 .cshtml 页面上。看这里如何使用 _Layout.cshtml

2)第二件事总是使用 @Url.Content() 指令来定义你的路径,例如

<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script>

这两种方式总是可以帮助您并且即使您部署包也不会出现问题。

以上希望有所帮助。

于 2012-09-25T10:41:12.253 回答
2

我们在asp.net中使用URL Rewriting时遇到的这类问题,而asp.net mvc默认有一个URL Rewriting。

因此,当您使用脚本或 url 和 js 时,您可以像这样设置路径。

@Url.Content("~/Your Url or Your script or Your js File ") ;

我想这会对你有所帮助。

于 2012-09-24T05:46:48.580 回答
1

MVC 内置了生成 url 的函数,因此请使用这些函数而不是硬编码 url

@Url.Content("~/yourpath")

当您将 webapp 部署到 IIS 上时,您的站点设置为作为虚拟目录运行,因此网站根目录不再与应用程序根目录相同,MVC 必须 ActionLinks,Url.Contents解析 Url。

MSDN 帮助

于 2012-09-24T05:35:09.647 回答