質問

これは非常に単純な質問かもしれませんが、これについてはock笑されますが、マスターページでファイルパスを使用するのは困難です。これは、マスターページを使用するサブディレクトリ内のページの場合、ファイルパスが間違っているためだと思います。

これを修正するには、ルートからファイルパスを取得する必要がありますが、機能していないようです。

試しました:

            <script type="text/javascript" src="~/jQueryScripts/jquery.js"></script> 

and

            <script type="text/javascript" src="../jQueryScripts/jquery.js"></script> 

どちらにも運がありません!

ルートからファイルパスを取得するように指示する方法はありますか?ありがとう:)

役に立ちましたか?

解決

ファイルパスから推測すると、実際にはurl(またはuri、どちらが不完全なのか忘れている)を意味します。

〜なしで、最初の例は動作するはずです。 <script type="text/javascript" src="/jQueryScripts/jquery.js"></script>により、ブラウザは http://www.example.com/jQueryScripts/jqueryを要求します。 .js (www.example.comはドメインです)。

他のヒント

このURLが機能するには、runat=server<head>タグにMasterPageを含める必要があると思います。

<head runat="server">

最初のチルダは、サーバーコントロールで使用するasp.netのものであり、基本的なHTMLでは機能しません。

詳細な説明に入ることなく、前にスラッシュ(/)を使用し、ルートサイトでない場合はWebアプリ名を含めることができます。

または、スクリプトを動的に含めるためにマスターページにコードを配置し、パスを処理できるようにすることもできます。いいね:

    public void AddJavascript(string javascriptUrl)
    {   
        HtmlGenericControl script = new HtmlGenericControl("script");
        script.Attributes.Add("type", "text/javascript");
        javascriptUrl += "?v" + Assembly.GetExecutingAssembly().GetName().Version;
        script.Attributes.Add("src", ResolveUrl(javascriptUrl));
        Page.Header.Controls.Add(script);
    }

上記のコードは、アセンブリバージョンも追加します。これは主に開発に使用するため、ビルドするたびにJavaScriptファイルが更新されます。

Page.ResolveUrl メソッドを使用してこれを回避できます

例:

<script type="text/javascript" src="<%=Page.ResolveUrl("~/jQueryScripts/jquery.js")%>"></script>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top