私はこれが古い投稿であることを知っていますが、これを行うためのより良い方法があります。この方法は、jsファイルとCSSファイルをプロジェクトに対してローカルに保つため、はるかに優れています。可能な限り12のハイブから離れることが最善であり、CSSファイルとjsファイルを追加することで可能であることがわかりました。
まず、JSファイルとCSSファイルをC#プロジェクトのトップレベルに配置するためのフォルダーを作成する必要があります。js/CSSファイルをこのフォルダーに配置します。
次に、jsファイルまたはCSSファイルを呼び出すConstants.csクラスを作成します。これがクラスのコードです。
using System;
using System.Collections.Generic;
using System.Text;
namespace myProjectSolution {
internal static class Constants
{
public const string JQuerymyjavascriptFileJS = "myProjectSolution.Resources.myjavascriptFile.js";
public const string CSSPath = "myProjectSolution.Resources.CSSPath.css";
}
}
コードでは、Resourcesフォルダーにリファーリングしていることに注意してください。これは、最初のステップで作成した追加のフォルダーです。それをあなたが望むものと呼んでください。
次の部分は、jsファイル/CSSへの参照をアセンブリに追加することです。
[assembly: WebResource(Constants.JQuerymyjavascriptFileJS, "text/javascript")]
[assembly: WebResource(Constants.CSSPath, "text/css")]
これが完了すると、WSPプロジェクトのメインC#クラスでjs/CSSを呼び出して使用する準備が整います。
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
this.EnsureChildControls();
Page.ClientScript.RegisterClientScriptResource(this.GetType(), Constants.JQuerymyjavascriptFileJS);
}
CSSファイルは少し異なります
ClientScriptManager csm = Page.ClientScript();
csm.RegisterClientScriptResourse(this.GetType(), Constants.CSSPath);
HtmlLink css = new HtmlLink();
css.Href = csm.GetWebResourceUrl(this.GetType(), Constants.CSSPath);
css.Attributes.Add("type", "text/css");
css.Attributes.Add("rel", "stylesheet");
Page.Header.Controls.Add(css);
これがjsおよびCSSファイルを呼び出すための最良かつ最も信頼できる方法であることがわかりました。これが、すべてのWebパーツのJavaScriptファイルとCSSファイルをロードする方法です。私はこの方法でそれを行うことに問題があったことはありません。これが問題を抱えている一部の人々に役立つことを願っています。SharePointは決して簡単なことではありません。:)