WebResource не работает на хосте - PullRequest
1 голос
/ 31 декабря 2011

У меня есть проект библиотеки классов, который содержит файл сценария java "libscript.js", который находится в папке library/Resources/Scripts.

Я отметил файл "libscript.js" как встроенный ресурс из свойстваwindow.

Я также добавил следующую строку кода в assemblyInfo.cs:

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

Наконец, я ссылался на библиотеку в своем проекте веб-сайта.

Когда я запускаюпроект на локальной машине, он работает нормально, и файл JavaScript был загружен правильно.Также, когда я создаю приложение в IIS, оно отлично работает.

Но когда я загружаю проект на хост, файл сценария не загружается и не обнаруживается!

1 Ответ

1 голос
/ 01 января 2012

То, что вы сделали, это шаги 1 (внедрить js как ресурс) и 2 (добавить веб-ресурс в 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, включив в него параметр PerformSubstitution , чтобы сгенерировать правильный путь к js:

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