2015-04-28 6 views
1

Итак, у меня есть три файла.jQuery getScript failing

HTML имеет:

<script type="text/javascript" src="~/Scripts/custom-notebook.js"></script>

таможенно-notebook.js линия дает 404 не найдено:

$.getScript('Scripts/custom-notebook-services.js'); //this gives 404

1. таможенно-ноутбук-услуги .js существует. Он используется для работы, но я изменил HTML Pathing включить ~/ потому что у меня есть виртуальное приложение (да MVC C#) ..

2. Теперь я ничего не делать работы (да и искал вокруг).

  • Я попытался $.getScript('../Scripts/custom-notebook-services.js');

  • и $.getScript('../../Scripts/custom-notebook-services.js');

  • и $.getScript('/Scripts/custom-notebook-services.js'); не

Не повезло:

Всегда дает мне 404 с пути

domain.com/Controller/Scripts/custom-notebook-services.js

... вместо правильного пути:

domain.com/Scripts/custom-notebook-services.js

+0

Попробуйте использовать '~' в других ссылках. Посмотрите, как это работает. –

+0

wierd показывает 404: 'domain.com/Controller/~/Scripts/custom-notebook-script.js'. – kingPuppy

+1

Попробуйте это как '' – Jasen

ответ

2

Один из способов получить путь от помощника Razor к вашему скрипту - это атрибут данных.

<body data-script-dir="@Url.Content("~/Scripts")"> 

Теперь извлеките это в свой javascript, но вам нужно отложить свой сценарий до загрузки DOM.

$(function() { 
    var scriptDir = $("body").attr("data-script-dir"); // "/Scripts" 
}); 

, то вы можете добавить остальную часть своего пути к этой строке.

+0

Я поддерживаю Jasen's, это может быть близко .... вам, вероятно, понадобится объединить полный домен url в 'data-script-dir', используя вышеописанный метод и построить путь, используя http://stackoverflow.com/a/21226409/3023642 . Для моей цели я использовал работу. Это очень странная проблема! jQuery, похоже, не очень хорошо работает с виртуальными каталогами MVC. – kingPuppy

2

У вас есть виртуальный каталог хорошо настроенный на IIS? В том же каталоге у вас есть страница, содержащая это <script type="text/javascript" src="/Scripts/custom-notebook.js"></script>, у вас должен быть виртуальный каталог, указывающий на «Scripts» в том же каталоге страницы.

+0

Правильно, так что вы говорите, что 'script' dir должен находиться в виртуальном каталоге' root' да? Это то, что я делаю. – kingPuppy