Чи можна завантажити просту структуру файлів html та javascript на heroku?


83

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


16
OP не просив рішення Ruby.
Адам Арольд

22
Прочитайте ще раз моє речення.
Адам Арольд

214

Простий спосіб - замаскувати програму 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 / ...
Щасливчик Гілмор

Дійсно, дуже добре. Врятував мене багато базікання з Node.js, велике спасибі!
davidkelleher

Можливо, вам знадобиться зробити a, git initщоб отримати команди git, а a, heroku createщоб команда heroku запрацювала
joncodo

5
Щоб зробити це ще простіше , ви можете просто перейменувати файл index.html в index.php
ChairmanMeow

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вищесказаним і це спрацювало. Хоча це рішення дуже просте. Дякую ...
Аакаш

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'

Потім запустіть bundle install, якщо у вас не встановлено самоцвіт bundle, просто запустіть на своєму терміналі:

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

0

Щоразу, коли ваша веб-сторінка містить HTML, CSS та JavaScript, виконайте лише 2 кроки:

1) Зробіть одному файлу ім’я як index.html (зберігайте все в ньому) ex: скрипт, таблиця стилів та тіло.

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.