weg*_*rer 7 javascript css asp.net url-routing .net-4.0
我上下颠倒了Stack Overflow,但不幸的是,没有一个答案对我有帮助.
我有一个使用Visual Studio提供的IIS在我的本地PC上完美运行的Web应用程序,但是当我将此应用程序部署到服务器时,只有CSS正确显示.
文件的文件夹结构如下:
我的代码,至少对于Master page head部分看起来像这样:
<head runat="server">
<link href="CSS/Style.css" rel="stylesheet" />
<script src="/JS/jQuery203Min.js"></script>
<script src="/JS/jQueryUI1103Min.js"></script>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
Run Code Online (Sandbox Code Playgroud)
但是,浏览器会像这样生成它:
<head>
<link href="../../CSS/Style.css" rel="stylesheet" />
<script src="JS/jQuery203Min.js"></script>
<script src="JS/jQueryUI1103Min.js"></script>
<script src="/JS/HomeArticles.js"></script>
</head>
Run Code Online (Sandbox Code Playgroud)
问题是除了CSS之外,JS文件夹中的所有文件都没有,Media或Uploads文件夹和子文件夹中的任何文件都没有正确生成.
问题是,如果我在图像src属性前添加"斜杠",图像获取位置http://localhost/Media/Discussion.png,如果我不添加"斜杠",那么图像位置http://localhost/Uploads/Users/HrvojeFadiga.jpg应该是http://localhost/Knowledge%20Management/Uploads/Users/HrvojeFadiga.jpg
以下是带图像的代码示例:
<div class="profileInfoWrapper">
<img src="/Uploads/Users/<%=article.User.PhotoLocation %>" />
<span class="postInfo">
<img src="/Media/Rating.png" /><%= GetArticleRating(article.idArticle) %>
</span>
<span class="postInfo">
<img src="/Media/Visitors.png" /><%= GetArticleViews(article.idArticle) %>
</span>
<span class="postInfo">
<img src="/Media/Comments.png" /><%= GetArticleComments(article.idArticle) %>
</span>
</div>
Run Code Online (Sandbox Code Playgroud)
仅供参考,Global.asax不包含任何忽略文件路由的规则,除了默认添加的.axd文件.
首先感谢大家的回复。经过几天的游戏,我终于弄清楚该怎么做才能让一切顺利进行。
JS问题
我通过向 .aspx 页面添加ScriptManager控件并在其中添加 JS 文件解决了 JS 问题。
<asp:ScriptManager ID="smScripts" runat="server">
<Scripts>
<asp:ScriptReference Path="JS/jQuery203Min.js"/>
</Scripts>
</asp:ScriptManager>
Run Code Online (Sandbox Code Playgroud)
由于某种原因,CSS 文件“开箱即用”,所以我保留它们不变。
图像问题
<%: Page.ResolveUrl("~/Media/Image.png") %>我通过避免对图像进行硬编码链接并添加到标签的 src 属性,成功解决了图像问题<img>。我想我应该对我不想路由的所有内容执行此操作。这可以对 CSS 文件、JS 文件等等进行。然而,(尽管这应该可以完美地工作)我在 JS 文件方面遇到了一些奇怪的问题,这就是使用ScriptManager的原因。
页面链接问题
起初我没有意识到我的链接都不起作用,所以我认为问题是半硬编码的链接,由于某种原因,即使我按照Global.asax中定义的相同方式对路线进行了硬编码,也无法正确路由文件。我仍然不确定为什么这不起作用。
解决方案是通过使用生成链接<%: Page.GetRouteUrl("RouteName", new { routeParameter1 = routeParameter1Value, routeParameter2 = routeParameter2Value}) %>,一切都会正常工作。