我创建了一个默认的ASP.net MVC项目。在主页面中,我在顶部有以下内容
<head runat="server">
<title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title>
<link href="../../Content/Site.css" rel="stylesheet" type="text/css" />
</head>
然后,我需要添加一个javascript文件,并通过将文件从解决方案资源管理器拖到页面来添加以下行:
<head runat="server">
<title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title>
<link href="../../Content/Site.css" rel="stylesheet" type="text/css" />
<script src="../../Scripts/jquery-1.3.2.min.js" type="text/javascript"></script>
</head>
当我访问该网站并从浏览器中查看html时,我看到了:
<head><title>
Index
</title><link href="Content/Site.css" rel="stylesheet" type="text/css" />
<script src="../../Scripts/jquery-1.3.2.min.js" type="text/javascript"></script>
</head>
CSS文件相对路径已修复,但JS文件没有。该站点将部署到服务器上的不同文件夹,而不是我在开发盒上的根目录。
有没有正确的方法呢?
答案 0 :(得分:16)
使用Url Helper:
<script type="text/javascript" src="<%=Url.Content("~/Content/script/MyFile.js")%>"></script>
希望有所帮助
答案 1 :(得分:7)
您可以创建一个类似这样的辅助方法:
<%= Helper.IncludeJavascriptFile("Menu.js") %>
然后在那个助手中你做了类似的事情:
public string IncludeJavascriptFile(string fileName){
return Url.Content("<root>/Javascript/Files/" + fileName);
}
然后您可以从视图中调用该辅助方法。如果您决定更改文件的位置,则只需在一个位置,您就必须担心它。如果您更改文件的名称,那么这本身就是一个不同的问题。