Правильная обработка URL - производство против разработки (ASP.NET) - PullRequest
1 голос
/ 04 марта 2011

Моя производственная среда находится в каталоге вне основного URL www.example.com/sample.Большинство моих URL разрешаются нормально с помощью ~, поэтому ~/default.aspx разрешается до www.example.com/sample/default.aspx.

Однако ни один из моих javascript-кодов css не загружается корректно в рабочей среде.У меня установлен скрипт src, например, js/sample.js, и я пробовал ~/js/sample.js, и он не разрешается.Я пробовал runat="server" в теге <script>, но иногда получал ошибку.У меня есть:

<script runat="server" src="~/js/sample.js?<%=   MyCode.VersionInfo.JSTag %>" type="text/javascript"></script>

Здесь я отмечаю код версии в конце имени файла для принудительной перезагрузки во время отладки, однако, с runat=server он жалуется на это.

I 'Я уверен, что это общая проблема, и есть стандартная идиома для ее решения, но я не могу ее найти.Кто-нибудь может мне помочь?Когда и как расширяется ~, и как люди справляются с такими вещами?

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

Ответы [ 3 ]

4 голосов
/ 04 марта 2011

что вы ищете:

<script type="text/javascript" src="<%= this.ResolveUrl("~/js/sample.js?" + MyCode.VersionInfo.JSTag) %>"></script>

больше информации здесь

0 голосов
/ 04 марта 2011

Вот предложение:

<script type="text/javascript" src="<% =HttpRuntime.AppDomainAppVirtualPath & "/js/sample.js"%>"></script>

Кроме того, если вы хотите обнаружить такие проблемы с путями, как это ранее, вы можете настроить свое веб-приложение для запуска в виртуальном каталоге, в Cassini (встроенный веб-сервер).

Щелкните правой кнопкой мыши веб-проект, выберите «Свойства», выберите «Интернет», а затем введите свой виртуальный путь - например, /sample/.

0 голосов
/ 04 марта 2011

Просто используйте относительные пути для js, css и изображений, т.е. js / sample.js

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...