Я'пытаюсь развернуть свой проект с открытым исходным кодом на heroku, он по необходимости очень простой, только статический html и javascript. Но разве они не поддерживают статические сайты? Я бы не хотел делать проект на Sinatra, если я не планирую использовать ничего, кроме html и javascript.
~/sites/d4-site $ heroku create --stack cedar
Creating quiet-ice-4769... done, stack is cedar
http://quiet-ice-4769.herokuapp.com/ | [email protected]:quiet-ice-4769.git
Git remote heroku added
~/sites/d4-site $ git remote -v
heroku [email protected]:quiet-ice-4769.git (fetch)
heroku [email protected]:quiet-ice-4769.git (push)
~/sites/d4-site $ git push heroku master
Counting objects: 53, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (49/49), done.
Writing objects: 100% (53/53), 206.08 KiB, done.
Total 53 (delta 4), reused 0 (delta 0)
-----> Heroku receiving push
-----> Removing .DS_Store files
! Heroku push rejected, no Cedar-supported app detected
Простой способ - замаскировать HTML-приложение под PHP-приложение. Heroku правильно идентифицирует PHP-приложения.
Переименуйте файл index.html в home.html.
Создайте файл index.php и включите в него ваш входной html-файл. Если ваш входной HTML-файл назван home.html, как рекомендуется, ваш index.php должен выглядеть следующим образом:
<?php include_once("home.html"); ?>
.
В командной строке на машине, с которой вы выполняете загрузку, введите:
git add . git commit -m 'ваше сообщение о фиксации' git push heroku master
Теперь Heroku должен правильно определить ваше приложение как php-приложение:
-----> PHP app detected
-----> Bundling Apache version 2.2.22
-----> Bundling PHP version 5.3.10
-----> Discovering process types
Procfile declares types -> (none)
Default types for PHP -> web
-----> Compiled slug size: 9.9MB
-----> Launching... done, v3
...
Mad Спасибо lemiffe за его статью в блоге: http://www.lemiffe.com/how-to-deploy-a-static-page-to-heroku-the-easy-way/
Вот более элегантный метод: Просто добавьте файл package.json
, который указывает Heroku использовать harp в качестве вашего сервера:
{
"name": "my-static-site",
"version": "1.0.0",
"description": "This will load any static html site",
"scripts": {
"start": "harp server --port $PORT"
},
"dependencies": {
"harp": "*"
}
}
и затем развернуть на Heroku. Готово!
Дополнительная информация: https://harpjs.com/docs/deployment/heroku
Для этого можно использовать стойку:
https://devcenter.heroku.com/articles/static-sites-on-heroku
или вы можете использовать что-то вроде Octopress/Jekyll, который использует sinatra.
Но вам нужен минимальный стек для обслуживания html статического контента
Вот что сработало для меня:
cd myProject
git init
heroku create myApp
heroku git:remote -a myApp
Если точкой входа является main.html
, создайте index.php
с этой единственной строкой содержимого:
<?php include_once("main.html"); ?>
а затем выполните следующие действия:
echo '{}' > composer.json
git add .
git commit -am "first commit"
git push heroku master
Перейдите на сайт http://myApp.herokuapp.com/, и ваше приложение должно быть теперь в сети.
Есть очень простой способ сделать это, на случай, если кому-то покажется, что ответы выше сложны для понимания.
У вас есть статический сайт с корнем в index.html
(допустим), теперь вы хотите развернуть его на Heroku, как это сделать?
git init # инициализировать git-репо
git add -A # добавить файлы
git commit -m "init commit" # зафиксировать файлы
# Теперь добавьте два файла в корень, composer.json и index.php, как показано ниже...
touch composer.json
touch index.php
# Затем добавьте эту строку в index.php, создавая приложение PHP и просто прося его отобразить index.html -
<?php include_once("index.html"); ?
# Теперь откройте composer.json и добавьте пустой объект -
{}
Теперь просто запустите git push heroku master
и все готово!
Я знаю, что это может быть немного старым, но я закончил тем, что использовал Vienna Gemw для развертывания этого, в основном это небольшое приложение Rack, которое позволит вам обслуживать все в вашей общей папке (css, изображения, js, html) с помощью всего пары строк Ruby:
require 'vienna'
run Vienna
Также для развертывания этого приложения на heroku вам нужно создать Gemfile:
source 'https://rubygems.org'
gem 'rack'
gem 'vienna'
Затем запустите bundle install, если у вас не установлен гем bundle, просто запустите его в терминале:
sudo gem install bundle
Вот, собственно, и все, больше информации вы можете найти на сайте: http://kmikael.com/2013/05/28/creating-static-sites-in-ruby-with-rack/.
Выполните следующие шаги
Шаг 1
Введите touch composer.json index.php index.html
Шаг 2 в файле index.php введите:
<?php include_once("index.html"); ?>
, а в composer.json введите {}
Шаг 3
git add .
git commit -m "[your message]"
git push ['yourrepo'] ['yourbranch']
Если ваша веб-страница содержит HTML, CSS и JavaScript, выполните всего 2 шага:
Создайте один файл с именем index.html (сохраните в нем все), например: script, stylesheet и body.
Теперь измените эти файлы, скопируйте и вставьте эти же файлы, но измените домен на index.php.
Затем разверните на Heroku.
Таким образом, этот метод поможет вам развернуть ваши веб-страницы.
Хммм... одной из причин, по которой heroku отклоняет приложение, может быть то, что он пытается обнаружить asset pipeline в приложениях rails 3.1.x, я думаю.
Почему бы не создать ваше приложение на стеке по умолчанию Bamboo, запустив просто
heroku create
Тогда все ваши js и css могут попасть в папку public в приложении rails с деактивированным asset pipeline.