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


84

Я пытаюсь развернуть свой проект с открытым исходным кодом на 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

Ответы:


13

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

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

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

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


17
OP не запрашивал решение Ruby.
Адам Арольд

23
Прочтите мою фразу еще раз.
Адам Арольд

215

Простой способ - замаскировать 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 'your commit message'
    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
...

Безумное спасибо Лемифу за его сообщение в блоге: http://www.lemiffe.com/how-to-deploy-a-static-page-to-heroku-the-easy-way/


28
Это ПУТЬ проще, и его следует принять как правильный ответ
Гленн Бек

3
примечание: мне нужно сначала добавить composer.json, чтобы заставить это работать. devcenter.heroku.com/articles/…
happygilmore 02

Действительно, действительно хорошо. Спасла меня от того, что я возился с Node.js, большое спасибо!
davidkelleher 05

Возможно, вам потребуется выполнить a, git initчтобы получить команды git, и a, heroku createчтобы заставить команду heroku работать
joncodo

5
Чтобы сделать это еще проще, вы можете просто переименовать index.html в index.php
председательMeow

38

Вот более элегантный метод: просто добавьте файл с именем, package.jsonкоторый говорит Heroku использовать арфу в качестве сервера:

{
  "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


3
Из всех ответов это рабочий по состоянию на ноябрь 2016 года
Серджио Майлуф,

2
да, это быстро и просто
user2431114

harp serverпо какой-то причине не удалось загрузить файл less file. Пробовал с php answerвышеуказанным, и это сработало. Хотя это решение действительно простое. Спасибо ...
Aakash

12

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

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


5

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

У вас есть статический веб-сайт с корнем index.html(скажем), теперь вы хотите развернуть его на Heroku, как?

git init # initialise a git repo

git add -A # add the files

git commit -m "init commit" # commit the files

# Now add two files in the root, composer.json and index.php like so - 
touch composer.json
touch index.php

# Then add this line to index.php, making a PHP app and just asking it to display index.html - 
<?php include_once("index.html"); ?>

# Now open composer.json and add an empty object - 
{}

Теперь просто беги, git push heroku masterи все готово!


2

Я знаю, что это может быть немного старовато, но в итоге я использовал Vienna Gemw для его развертывания, в основном это небольшое приложение Rack, которое позволит вам обслуживать все в вашей общей папке (css, images, js, html) всего с парой строк Рубина:

require 'vienna'
run Vienna

Кроме того, для развертывания этого на heroku вам необходимо создать Gemfile:

source 'https://rubygems.org'
gem 'rack'
gem 'vienna'

Затем запустите установку пакета, если у вас не установлен пакет gem, просто запустите его на своем терминале:

sudo gem install bundle

И это в значительной степени, вы можете получить дополнительную информацию по адресу : http://kmikael.com/2013/05/28/creating-static-sites-in-ruby-with-rack/


2

Следуйте этим шагам

Шаг 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

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

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

heroku create

Затем все ваши js и css могут перейти в общую папку в приложении rails с деактивированным конвейером ресурсов.


5
Мысль об использовании Rails для обслуживания статического контента заставляет меня хотеть кого-то обидеть :)
Джереми Смит,

Когда у вас есть только js / html / css, он ищет приложение node.js. Он терпит неудачу, если не находит его, независимо от того, в каком стеке вы его пытаетесь запустить.
fresh5447 08

0

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

1) Сделайте один файл с именем index.html (сохраните в нем все), например: скрипт, таблица стилей и тело.

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

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

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


0

Обновление 2020:

Если вы получили пустую страницу с упомянутым здесь ответом PHP, попробуйте следующее - Если ваша домашняя страница находится по адресу index.html:

echo '<?php header( 'Location: /index.html' ) ;  ?>' > index.php
echo '{}' > composer.json

Создание репозитория Git и фиксация после добавления файлов:

git init
git add .
git commit -m "My site ready for deployment."

Развертывание Heroku -

heroku login
heroku apps:create my-static-site-example
git push heroku master
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.