Возможно ли загрузить простую структуру файлов html и javascript в heroku?

Я'пытаюсь развернуть свой проект с открытым исходным кодом на 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/ | git@heroku.com:quiet-ice-4769.git
Git remote heroku added

~/sites/d4-site $ git remote -v
heroku  git@heroku.com:quiet-ice-4769.git (fetch)
heroku  git@heroku.com: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-приложения.

  1. Переименуйте файл index.html в home.html.

  2. Создайте файл index.php и включите в него ваш входной html-файл. Если ваш входной HTML-файл назван home.html, как рекомендуется, ваш index.php должен выглядеть следующим образом:

    <?php include_once("home.html"); ?>.

  3. В командной строке на машине, с которой вы выполняете загрузку, введите:

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/

Комментарии (10)

Вот более элегантный метод: Просто добавьте файл 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

Комментарии (6)
Решение

Для этого можно использовать стойку:

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

или вы можете использовать что-то вроде Octopress/Jekyll, который использует sinatra.

Но вам нужен минимальный стек для обслуживания html статического контента

Комментарии (2)

Вот что сработало для меня:

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/, и ваше приложение должно быть теперь в сети.

Комментарии (0)

Есть очень простой способ сделать это, на случай, если кому-то покажется, что ответы выше сложны для понимания.

У вас есть статический сайт с корнем в 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 и все готово!

Комментарии (0)

Я знаю, что это может быть немного старым, но я закончил тем, что использовал 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/.

Комментарии (0)

Выполните следующие шаги

Шаг 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']
Комментарии (0)

Если ваша веб-страница содержит HTML, CSS и JavaScript, выполните всего 2 шага:

  1. Создайте один файл с именем index.html (сохраните в нем все), например: script, stylesheet и body.

  2. Теперь измените эти файлы, скопируйте и вставьте эти же файлы, но измените домен на index.php.

Затем разверните на Heroku.

Таким образом, этот метод поможет вам развернуть ваши веб-страницы.

Комментарии (0)

Хммм... одной из причин, по которой heroku отклоняет приложение, может быть то, что он пытается обнаружить asset pipeline в приложениях rails 3.1.x, я думаю.

Почему бы не создать ваше приложение на стеке по умолчанию Bamboo, запустив просто

heroku create

Тогда все ваши js и css могут попасть в папку public в приложении rails с деактивированным asset pipeline.

Комментарии (2)