2012-07-02 4 views
1

Использование Cassette.net, MVC 3, Razor, C#, относительных местоположений и общих макетов, как вы получаете ссылки в правильном порядке без изменения исходных файлов javascript?Cassette.web, MVC 3, Shared Layout: Получить ссылки в правильном порядке?

В общей компоновке, я ссылку JQuery, как это:

Bundles.Reference("~/Scripts/jquery-1.7.2.js"); 

Тогда в представлении я добавить еще одну ссылку:

Bundles.Reference("~/Scripts/myScript.js"); 

MyScript зависит от JQuery, но Кассетный ссылки MyScript перед jQuery:

<script src="/_cassette/asset/Scripts/js/myScript.js?... 
<script src="/_cassette/asset/Scripts/jquery-1.7.2.js?... 

Мне показалось странным, что скрипты, на которые ссылаются дочерние страницы, отображают b перед родительскими скриптами.

Я вижу, что вы можете добавлять примечания к своим скриптам, например, /// <reference path="other.js" />, но я действительно не хочу изменять код javascript, чтобы включить это.

Update:

Я добавил

Bundles.Reference("~/Scripts/jquery-1.7.2.js","head") 
Bundles.Reference("~/Scripts/js/myScript.js","body") 

, который по крайней мере, ставит мой сценарий после того, как скрипт JQuery с использованием @Bundles.RenderScripts("head"); и @Bundles.RenderScripts("body"); внутри соответствующих тегов. Кажется, что скрипты добавлены в порядке. Я все равно хотел бы знать, как настраивать эти сценарии с помощью какого-либо типа Bundle.config или как получить родительские страницы для заказа скриптов перед дочерними страницами с использованием общих макетов.

+0

Обозначение комментария - это правильный способ достижения этого, насколько мне известно. Вы также упомянули перегрузку, которая занимает место. Лично я не вижу недостатка в отношении комментариев. Вы не функционально меняете библиотеку javascript, и на самом деле вы получаете график зависимостей для работы. – Khepri

+0

Я не нашел способ заказать скрипты даже с комментариями, когда некоторые Bundles.Reference происходят в родительском и дочернем макетах. Кажется, он всегда ставит дочерние ссылки. Например, jQuery, на который ссылаются в родительском макете/представлении, следует за тегами сценария в дочернем представлении, поскольку это не связано с тем, что jQuery не был определен. –

ответ