4

私はdefault.aspxのようなリンクを持つアプリを持っています...

<link href="Styles/smoothness/jquery-ui-1.8.14.custom.css" rel="stylesheet" type="text/css" />
<script src="Scripts/json2.min.js" type="text/javascript"></script>
<script src="Scripts/jquery-1.6.2.min.js" type="text/javascript"></script>
<script src="Scripts/jquery-ui-1.8.14.custom.min.js" type="text/javascript"></script>
<script src="Scripts/jquery.tmpl.min.js" type="text/javascript"></script>  

URL ルーティングを追加すると、相対パスが壊れました。したがって、ルートに深く入り込むと、ページは画像やスクリプトなどを見つけることができません。jQuery サービス呼び出しもおそらく壊れていると思います。これを修正するために、すべての相対参照の先頭に「/」を追加する以外の方法はありますか? 私のglobal.asaxには現在...

void RegisterRoutes(RouteCollection routes)
{

    routes.MapPageRoute(
        "EntityRoute", 
        "{entityID}", 
        "~/Default.aspx");        

    routes.MapPageRoute(
        "GlobalSearchRoute",
        "{entityID}/{guarantorID}/{guarDOB}",
        "~/Default.aspx");
}

サイト内のすべてのパスを変更せずに、相対パスが機能するようにする何かをここに追加できますか?

4

2 に答える 2

1

global.asaxで Routes.IgnoreRoute を使用して、静的コンテンツを参照するルートを除外できます。

routes.IgnoreRoute("Styles/{*pathInfo}");
routes.IgnoreRoute("Scripts/{*pathInfo}");
routes.IgnoreRoute("Images/{*pathInfo}");

于 2012-04-24T23:56:44.493 に答える
1

単純に html base タグを使用できます。

aspx で:

<base id="baseControl" runat="server" />

コードビハインド:

protected void Page_Init(object sender, EventArgs e)
{
    baseControl.Attributes.Add("href", Request.Url.GetLeftPart(UriPartial.Authority) + VirtualPathUtility.ToAbsolute("~/"));
}

お役に立てれば。

于 2013-09-24T16:48:10.013 に答える