Можно ли загрузить в 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.