3.1 Cтатичные страницы
Rails имеет два основных способа создания статических веб-страниц. Во превых, Рельсы могут обрабатывать истинно статические страницы, состоящие из чистых HTML файлов. Во-вторых, Рельсы могут определить представления содержащие чистый HTML, которые Рельсы могут интерпретировать таким образом, что веб-сервер сможет отправить их в браузер.
Для того, чтобы сориентироваться, полезно вспомнить структуру каталогов Rails из Раздела 1.2.3 (Рис. 1.2). В этом разделе мы будем работать в основном в app/controllers
и app/views
директориях. (В Разделе 3.2, мы даже добавим свою собственную директорию.)
3.1.1 Истинно статические страницы.
Мы начнем с по-настоящему статичных страниц. Напомним, из Раздела 1.2.5 что, благодаря rails
сценарию, каждое Rails приложение поставляется как минимально рабочее приложение с дефолтной (по умолчанию) страницей приветствия по адресу //localhost:3000/ (Рис. 1.3).

Рисунок 3.2: public/index.html
файл.
Чтобы узнать, откуда берется эта страница, взгляните на файл public/index.html
(Рис. 3.2). Он немного грязноват, так как содержит свою собственную информацию о стиле, но он выполняет свою работу: по умолчанию, Rails выполняет любые файлы из public
каталога непосредственно в браузер.2 В случае специального index.html
файла, по умолчанию, вы можете даже не указывать файл в URL, как index.html
Хотя вы можете включить его, если хотите; адреса:
//localhost:3000/
и
//localhost:3000/index.html
эквивалентны.
Как и следовало ожидать, если захотим, мы можем сделать наши собственные статичные файлы HTML и положить их в тот же public
каталог как и index.html
. Например, давайте создадим файл с дружеским приветствием (Листинг 3.3):3
$ mate public/hello.html
public/hello.html
<!DOCTYPE html> <html> <head> <title>Приветствие</title> </head> <body> <p>Привет, мир!</p> </body> </html>
В Листинге 3.3 мы видим типичную структуру HTML документа: тип документа, или doctype, заявление вверху, говорящее браузерам, какую версию HTML мы используем; (в данном случае, HTML5);4 head
раздел, в данном случае с “Приветствие” внутри title
тега; и body
раздел, в данном случае с “Привет, мир!” внутри p
(параграф) тега. (Отступ не является обязательным, HTML не чувствителен к пробелам, и игнорирует как табуляции так и пробелы, но это делает структуру документа легко читаемой.) Как и было обещано, при посещении адреса //localhost:3000/hello.html, Rails незамедлительно его (hello.html) визуализирует (Рис. 3.3). Обратите внимание, что название, отображаемое в верхней части окна браузера в Рис. 3.3 это, всего лишь, содержимое title
тега — “Приветствие”.

Рисунок 3.3: Наш собственный статичный HTML файл (//localhost:3000/hello.html)
Так как этот файл только для демонстрационных целей, и, в действительности, мы не хотим, чтобы он стал частью нашего примера приложения, лучше удалить его:
$ rm public/hello.html
Пока мы оставим index.html
файл, но, конечно, в конечном итоге мы удалим и его: мы ведь не хотим, чтобы главной страницей нашего приложения была дефолтная страница Rails показаная на Рис. 1.3. В Разделе 5.2 мы увидим, что нужно изменить, чтобы адрес //localhost:3000/ указывал на нечто иное, нежели public/index.html
.