2015-02-19 5 views
0

У меня есть приложение Rails с документацией, которая является статическими html-страницами в/общей папке.Как обслуживать статические html-страницы с Rails?

Дерево моей папки:

-public 
    -docs 
    -intro 
     introduction.html 
    -css 
     some.css 
    index.html 

Index.html файл является:

<link rel="stylesheet" href="css/some.css" type="text/css" /> 
Some of the text 
<li>href="intro/introduction.html"><em>Introduction</em></a></li> 

При открытии индекс страницы CSS не загружен, и когда я пытаюсь нажать на ссылку он говорит об ошибке маршрутизации. Насколько я понял, статические страницы не знают, где искать css и другие html-страницы.

Я просто хочу статические страницы без каких-либо маршрутов и контроллеров nginx.

Любые идеи?

+1

Это не излишество, если у него есть приложение полнофункциональное Rails и просто хочет служить статический контент на стороне. – Jesper

+0

@Jesper Правильно, у меня есть полнофункциональное приложение Rails. –

ответ

3

Все содержание общих папок доступно через «/»

<link rel="stylesheet" href="/docs/css/some.css" type="text/css" /> 

Вы можете использовать high_voltage gem для создания static_pages

1

Его вполне допустимо, чтобы служить статические файлы (страницы или нет) с помощью общего каталога. Поскольку Kirka121 сказал, что рельсы на самом деле не построены для этой цели, но могут работать с ним.

В среде разработки он должен просто работать, чтобы обслуживать любые файлы, которые вы публикуете публично, для производственной среды вам может понадобиться настроить любой сервер, который вы используете для их обслуживания, но это должно быть покрыто его обычной настройкой в ​​любом случае, если не настроен неправильно.

Таким образом, по умолчанию общая папка рельсов может быть напрямую доступна в корне проекта.

Насколько ваш код относится к относительным ссылкам/URL-адресам, похоже, проблема. Его вообще лучше использовать абсолютные пути для всего, чтобы не путать что-либо, что приводит к очень тяжелому обнаружению ошибок.

С вашей структурой папок и примером это будет:

<link rel="stylesheet" href="/docs/css/some.css" type="text/css" /> 
Some of the text 
<li><a href="/docs/intro/introduction.html"><em>Introduction</em></a></li> 
Смежные вопросы