Как я могу обслуживать вложенный статический контент на Heroku?

У меня есть приложение rails со статическим содержимым в каталоге public (например, public/index.html) и дополнительным статическим содержимым во вложенных подкаталогах (например, public/one/two/index.html).

Весь статический контент обслуживается правильно, если я запускаю его локально через script/server, но когда я загружаю его на Heroku, страницу верхнего уровня загружается правильно, но вложенный контент возвращает ошибку 404.

Я нашел ряд ресурсов (например, этот вопрос) которые обсуждают статический контент в рельсах, но все они, похоже, предполагают довольно простую структуру с одним каталогом, содержащим все файлы.

Есть ли способ исправить это?


person Matthew Murdoch    schedule 21.04.2010    source источник
comment
Вы говорите, что он не загружается, когда вы переходите к /one/two/index.html, или проблема в том, что он не обслуживается как /one/two?   -  person mckeed    schedule 22.04.2010
comment
Если вы успешно отправили его в героку, и ваши каталоги имели правильное разрешение, а в route.rb нет ничего подозрительного, я думаю, он должен работать правильно....   -  person Gabriel Ščerbák    schedule 22.04.2010
comment
@mckeed - он не обслуживается ни как /one/two, ни /one/two/, ни /one/two/index.html...   -  person Matthew Murdoch    schedule 22.04.2010
comment
Это странно. Правильно ли отображаются общедоступные изображения/изображения?   -  person mckeed    schedule 22.04.2010
comment
@mckeed - я так думаю, но больше не могу проверять, так как я выбрал более простой подход, используя Sinatra, а не Rails, и мне удалось заставить его работать.   -  person Matthew Murdoch    schedule 23.04.2010


Ответы (2)


Если у вас очень простое веб-приложение (скажем, в основном со статическим содержимым), используйте Sinatra на Heroku настроить гораздо проще, и он предотвращает подобные проблемы.

person Matthew Murdoch    schedule 26.04.2010

Вы можете обслуживать статический контент на Heroku вообще без написания какого-либо «кода»… вам просто нужно указать промежуточному программному обеспечению «Rack», где находится контент (как подробно описано в этой справочной статье):

http://devcenter.heroku.com/articles/static-sites-on-heroku

person GroovyCakes    schedule 24.01.2012