Статические страницы в MVC framework?
-
18-09-2019 - |
Вопрос
Куда вы, ребята, помещаете свои статические страницы, например "home", в MVC-фреймворке?У вас есть "домашний" контроллер?Контроллер "страниц"?Создаете ли вы действия для каждой статической страницы?
Сейчас я использую CFWheels и пытаюсь найти лучшее место для их размещения.
Редактировать: Очевидно, что CFWheels не требует от вас создания действий для всех ваших представлений.Таким образом, вы можете просто создать пустой контроллер и вызывать представления, подобные действиям, но вам не придется выписывать пустые функции.
Решение
В конце концов, статическая страница — это представление без модели, которое было возвращено на основе действия, которое пользователь запросил с вашего сервера, перейдя по определенному маршруту.:-)
Да, технически вы можете предоставить пользователю прямое местоположение ресурса представления и полагаться на демон http, который достанет его и вернет.Однако это означает, что URL-адрес ресурса теперь привязан не к семантике ресурса, который вы хотите предоставить, а к реальным битам.Это означает, что если вам нужно другое представление того же ресурса, вам придется предоставить его по другому URL-адресу.
Итак, когда вы создаете структуру своего веб-приложения, сначала подумайте об URL-адресах и ресурсах, которые вы хотите предоставить, а затем подумайте, как реализовать каждый ресурс.
Другие советы
У CakePHP (и, я думаю, Ruby On Rails) есть контроллер "pages".Существует функция маршрутизации, которая перенаправляет запросы на /pages/foo
Для /pages/display/foo
.Аналогично, /
перенаправляется на /pages/display/home
.Тот Самый display
действие просматривает views/pages
папку для любого файла с соответствующим именем и отображает его.
Я помещаю свои статические страницы в базу данных, используя простую CMS с частной страницей администратора.
Таким образом, клиенты могут сами вносить простые изменения.
В Wheels вам даже не нужно создавать файл контроллера.
Если вы создадите свое представление здесь:просмотры/о/index.cfm
Вам вообще не нужно создавать файл контроллера.Тогда вы сможете без проблем просто вызвать это:http://www.example.com/about