Я пытаюсь сделать что-то вроде «системы шаблонов», это может позволить пользователю изменить шаблон сайта. Например, в панели администратора.Css в другой папке
Мой текущий файлы структура
-Controllers
-Models
-Views
--Templates
---DefaultTemplate
----css
-----style.css
----Index.cshtml
В контроллере по умолчанию (дома) я проверить текущее имя шаблона и показать правильный вид
private ViewResult TemplateView(string viewName)
{
return View($"~/Views/Templates/{GlobalSettings.CurrentTemplate}/{viewName}.cshtml");
}
и некоторые шаблон View (Index.cshtml
)
.....
<link rel="stylesheet" href="~/Views/Templates/DefaultTemplate/css/style.css" type="text/css" />
.....
Но я не знаю, как правильно писать путь к моим css \ js \ images в правой templat e forder.
Я попытался
./css/style.css
@Url.Content("/css/style.css")
Но в результате HTML это как mysite.com/css/style.css
так я получил 404 (не найдено)
Я также попытался это
~/Views/Templates/DefaultTemplate/css/style.css
В этом случае я тоже получил 404.
Итак, может кто-нибудь мне помочь? Как написать правильный URL-адрес для CSS, изображений, hs и т. Д.?
Могу ли я разрешать доступ только по указанному пути? Не для всех просмотров? –
см. [This] (http://stackoverflow.com/questions/604883/where-to-put-view-specific-javascript-files-in-an-asp-net-mvc-application), но почему вы храните его внутри просмотреть папку? –
Удобство для пользователя. «Просто поместите папку с представлениями, css, js, изображениями в папку шаблонов и выбрали ее в настройках» - не нужно ставить стили в «css/template», полосы в «js/template» и т. Д. –