Ruby on Rails - Статическая страница как стартовая страница

Я разрабатываю приложение в RoR, которое имеет статические и динамические части. Статическая часть помещается в общую папку / приложение. Теперь, если у меня есть index.html в моей общедоступной папке, я не смогу использовать маршруты, настроенные в моем route.rb. Конфигурации по умолчанию, такие как map.connect /:controller/:action, не будут использоваться, если у меня есть индекс.html. Поэтому я удалил индекс HTML.

Теперь у меня есть статическая страница startpage.html в моей папке public /, которая должна быть начальной страницей приложения. И у меня есть ссылки в нем для других статических / динамических страниц.

Приложение RoR размещено в Apache, и я попытался настроить конфигурацию виртуального хоста, добавив параметр DirectoryIndex, чтобы при поступлении запроса на сайт он направлял его в startpage.html, но все равно он переводил меня на контроллер по умолчанию, который я указал в ways.rb с map.root

Я не хочу добавлять фиктивный контроллер и действие, а также создавать представление с начальной страницей и настраивать route.rb, чтобы использовать его в качестве корневого. Что я хочу сделать здесь

По сути, startpage.html должен быть моей первой страницей в приложении, которая была статической страницей из public / folder. Затем будут ссылки на другие страницы и контроллеры / действия

Здесь я не могу apache для перенаправления на html-страницу вместо передачи управления в приложение rails. Перечень каталогов также включен с помощью индексов параметров, но без изменений.

Любые указатели кто-нибудь?

2 ответа

Решение

Теперь, если у меня есть index.html в моей общедоступной папке, я не смогу использовать маршруты, настроенные в моем rout.rb.

Это неверно Решение вашей проблемы - переименовать startpage.html в index.html, который будет вызывать запросы на / обслуживаться index.htmlи любые запросы на /:controller/:action будет передан в Rails Routing engine.

Apache сначала будет обслуживать все, что может найти в public каталог. Если он недоступен, он передает запрос в Rails (так работает кеширование страниц).

С index.html на месте, вам не нужно map.root, так как он никогда не будет запрошен (помните, Apache служит / с index.html). И вам не нужны никакие специальные директивы.

Вы можете переписать URL из index.html в свою startpage.html.

RewriteRule /index.html /startpage.html
Другие вопросы по тегам