Этот ответ содержит два подхода. второй может быть более подходящим для вашего сценария.первый может быть более подходящим для общего Mvc проекта
подход один
я предлагаю создать организованную структуру в папку содержимого для хранения скриптов и CSS файлы, т.е.
/Content/Demos/Page-Title-1/
/Content/Demos/Page-Title-2/
/Content/Demos/Page-Title-3/
и
/Content/Demos/Common/
, а затем создайте связку, чтобы отобразить сценарии и файлы css для каждого заголовка страницы
т.е.
bundles.Add(new StyleBundle("~/Demo/page-title/css").Include(
"~/Content/Demos/Page-Title-1/csscontent1.css",
"~/Content/Demos/Page-Title-1/csscontent2.css",
"~/Content/Demos/Page-Title-1/csscontent3.css",
"~/Content/Demos/Page-Title-1/csscontent4.css"));
bundles.Add(new StyleBundle("~/Demo/page-title/js").Include(
"~/Content/Demos/Page-Title-1/jscontent1.css",
"~/Content/Demos/Page-Title-1/jscontent2.css",
"~/Content/Demos/Page-Title-1/jscontent3.css",
"~/Content/Demos/Page-Title-1/jscontent4.css"));
Это позволит вам визуализировать сценарии на демонстрационной странице с использованием нескольких линейных подходов, т.е.
@Styles.Render("~/Demo/page-title/css");
@Scripts.Render("~/Demo/page-title/jss");
@Styles.Render("~/Demo/common/css");
@Scripts.Render("~/Demo/common/css");
вам придется обновить файлы в глобальной .asax, как вы измените файлы в/Content/Demos/Page-Title/папку. есть преимущество, которое, если вы выберете, вы можете связать и минимизировать файлы, чтобы сэкономить пропускную способность и время загрузки для загрузки первой страницы.
подход два.
(до сих пор использует следующую структуру папок
/Content/Demos/Common/
и
/Content/Demos/Page-Title-1/
/Content/Demos/Page-Title-2/
/Content/Demos/Page-Title-3/)
сделать HTML-помощник для ссылки всех скриптов & содержимого в папке
его использование будет @ Asset.RenderAssets ('~/folderdirectory')
и помощник будет делать что-то вроде
@helper RenderAssets (stirng directory){
@* scrape the directory for all script files*
var scripts = find all scripts in the directory
@* include the script files *@
for each script
<script src=" ... .js"></script>
@* scrape the directory for all cssfiles*
var styles = all css in the directory
@* include the css files *@
for each style
<link rel='stylesheet' type="text/css" href=" ... .css">
}
это было бы несколько использования линии в каждом демо зрении
@Asset.RenderAssets('~/Content/Demos/Common')
@Asset.RenderAssets('~/Content/Demos/Page-Title')
вы можете или не можете понадобиться пара это с несколькими дополнительной линией или два в вашем global.asax или RouteConfig.cs файл (см источник 3)
routes.IgnoreRoute("/Content/Demos/{page}/{script}.js");
routes.IgnoreRoute("/Content/Demos/{page}/{style}.css");
актуальны так urces для создания HTML хелперы см http://weblogs.asp.net/scottgu/archive/2011/05/12/asp-net-mvc-3-and-the-helper-syntax-within-razor.aspx
использовать пакетирование и minifcation (в scripts.render подход) см http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification
Phill haakk говорит не нужно соединить это с игнорированием маршрута! https://stackoverflow.com/a/30551/1778606
комментарии и исправления приветствуются.
Вы делаете маршрутизации для статического содержимого, такого как JS, CSS и т.д.? –
Ненавижу говорить об этом, но я не уверен. По сути, каждый PageDemo будет иметь свою собственную уникальную структуру JS/Images/css и т. Д. Pagedemo всегда будет статическим HTML. По этой причине я бы сказал, что контент статичен, но я не уверен в самом маршруте. Я имею в виду? – user70192
Простите, я не понимаю, что вы говорите. Когда я посещаю /pages/page-title/demo/index.html, есть ссылка на файл JavaScript. Эта ссылка - «resources/javascript/index.html.js». Однако index.html не может найти этот файл. Ссылка на «resources/javascript/index.html.js» возвращает значение 404. – user70192