WebResource无法在主机上运行

时间:2011-12-31 19:28:06

标签: c# asp.net .net webresource

我有一个类库项目,其中包含一个位于library/Resources/Scripts文件夹中的java脚本文件“libscript.js”。

我将“libscript.js”文件标记为属性窗口中的嵌入式资源。

我还在assemblyInfo.cs中添加了以下代码行:

[assembly: WebResource("Library.Resources.Scripts.libscript.js", "text/javascript")]

最后,我在网站项目中引用了该库。

当我在本地计算机上运行项目时,它工作正常,javascript文件已正确加载。此外,当我在IIS中创建一个应用程序时,它工作正常。

但是当我将项目上传到主机时,脚本文件未加载且未找到!

1 个答案:

答案 0 :(得分:1)

你所做的是步骤1(将js作为资源嵌入)和2(将webresource添加到assembly.cs)中的3个。

第三步是提取js并将其发送到浏览器:

  protected override void OnInit(EventArgs e)
  {
    base.OnInit(e);

    this.Page.ClientScript.RegisterClientScriptInclude(
       this.GetType(), "libscript", 
       Page.ClientScript.GetWebResourceUrl(this.GetType(), 
       "Library.Resources.Scripts.libscript.js"));
  }

您还需要修改assembly.cs中的webresource定义以包含PerformSubstitution参数,以便生成到js的正确路径:

[assembly: WebResource("Library.Resources.Scripts.libscript.js", "text/javascript", PerformSubstitution = true)]