Czy można przesłać do heroku prostą strukturę plików html i javascript?


84

Próbuję wdrożyć mój projekt open source na heroku, z konieczności jest to bardzo proste, wystarczy statyczny kod HTML i javascript. Ale czy nie obsługują witryn statycznych? Wolałbym nie robić z tego projektu Sinatra, jeśli nie planuję kiedykolwiek używać niczego oprócz html i 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

Odpowiedzi:



215

Prostym sposobem jest zamaskowanie aplikacji HTML jako aplikacji PHP. Heroku poprawnie identyfikuje aplikacje PHP.

  1. Zmień nazwę pliku index.html na home.html.
  2. Utwórz plik index.php i dołącz swój plik html. Jeśli Twój plik wejściowy HTML nosi nazwę home.html zgodnie z zaleceniami, plik index.php powinien wyglądać następująco:

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

  3. W linii poleceń na maszynie, z której pchasz, wpisz:

    git add .
    git commit -m 'your commit message'
    git push heroku master

Heroku powinno teraz poprawnie wykryć twoją aplikację jako aplikację 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
...

Szalone podziękowania dla lemiffe za jego wpis na blogu: http://www.lemiffe.com/how-to-deploy-a-static-page-to-heroku-the-easy-way/


28
To jest DUŻO prostsze i powinno być zaakceptowane jako poprawna odpowiedź
Glenn Bech

3
Uwaga: najpierw musiałem dodać plik composer.json, aby to zadziałało. devcenter.heroku.com/articles/…
happygilmore

Naprawdę, naprawdę dobrze. Zaoszczędziłem mi wiele kłopotów z Node.js, wielkie dzięki!
davidkelleher

Być może będziesz musiał zrobić a, git initaby uzyskać polecenia git i a, heroku createaby polecenie heroku działało
joncodo

5
Aby było to jeszcze prostsze, możesz po prostu zmienić nazwę index.html na index.php
ChairmanMeow,

38

Oto bardziej elegancka metoda: po prostu dodaj plik o nazwie, package.jsonktóry mówi Heroku, aby używał harfy jako serwera:

{
  "name": "my-static-site",
  "version": "1.0.0",
  "description": "This will load any static html site",
  "scripts": {
    "start": "harp server --port $PORT"
  },
  "dependencies": {
    "harp": "*"
  }
}

a następnie wdrożyć w Heroku. Gotowe!

Więcej informacji: https://harpjs.com/docs/deployment/heroku


3
Ze wszystkich odpowiedzi jest to działająca na listopad 2016
Sergio Majluf

2
tak, ten jest szybki i prosty
user2431114

harp serverz jakiegoś powodu nie mógł załadować pliku less file. Próbowałem z php answerpowyższym i zadziałało. Chociaż to rozwiązanie jest naprawdę proste. Dzięki ...
Aakash

12

Oto, co zadziałało dla mnie:

cd myProject 
git init
heroku create myApp 
heroku git:remote -a myApp 

Jeśli punktem wejścia jest main.html, utwórz index.phpz tym pojedynczym wierszem treści:

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

a następnie wykonaj następujące czynności:

echo '{}' > composer.json 
git add . 
git commit -am "first commit" 
git push heroku master

Wejdź na http://myApp.herokuapp.com/, a Twoja aplikacja powinna być teraz online.


5

Jest na to bardzo łatwy sposób, na wypadek gdyby ktoś stwierdził, że powyższe odpowiedzi są trudne do zrozumienia.

Masz swoją statyczną stronę internetową z index.htmlkatalogiem głównym w (powiedzmy), teraz chcesz ją wdrożyć w Heroku, jak?

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

Teraz po prostu biegnij git push heroku masteri gotowe!


2

Wiem, że to może być trochę stare, ale ostatecznie użyłem Vienna Gemw do wdrożenia tego, w zasadzie jest to mała aplikacja Rack, która pozwoli Ci obsłużyć wszystko w twoim folderze publicznym (css, images, js, html) za pomocą zaledwie kilku linii Rubiego:

require 'vienna'
run Vienna

Ponadto, aby wdrożyć to na Heroku, musisz utworzyć Gemfile:

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

Następnie uruchom instalację pakietu, jeśli nie masz zainstalowanego klejnotu pakietu, po prostu uruchom na swoim terminalu:

sudo gem install bundle

I to prawie wszystko, więcej informacji możesz znaleźć na: http://kmikael.com/2013/05/28/creating-static-sites-in-ruby-with-rack/


2

Wykonaj poniższe czynności

Krok 1

Rodzaj touch composer.json index.php index.html

Krok 2 w typie index.php:

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

i w typie composer.json {}

Krok 3

git add .

git commit -m "[your message]"

git push ['yourrepo'] ['yourbranch']

0

Hmmm ... jednym z powodów, dla których heroku odrzuca aplikację może być próba wykrycia potoku aktywów w aplikacjach rails 3.1.x.

Dlaczego nie utworzyć aplikacji na domyślnym stosie Bamboo , uruchamiając po prostu

heroku create

Następnie wszystkie pliki js i css mogą przejść do folderu publicznego w aplikacji rails z wyłączonym potokiem aktywów.


5
Myśl o wykorzystaniu Railsów do wyświetlania statycznej zawartości sprawia, że ​​chcę kogoś skrzywdzić :)
Jeremy Smith

Gdy masz tylko js / html / css, szuka aplikacji node.js. Nie udaje się, gdy go nie znajduje, niezależnie od stosu, z którym próbujesz go uruchomić.
fresh5447,

0

Cóż, ilekroć twoja strona internetowa zawiera HTML, CSS i JavaScript, wykonaj tylko 2 kroki:

1) Zrób jeden plik i nadaj mu nazwę index.html (zachowaj wszystko w nim) np: skrypt, arkusz stylów i treść.

2) Teraz zmień te pliki, skopiuj i wklej ten sam plik, ale zmień domenę na index.php

Następnie umieść na Heroku.

Dlatego ta metoda pomoże Ci wdrożyć Twoje strony internetowe


0

Aktualizacja 2020:

Jeśli otrzymasz pustą stronę z wymienioną tutaj odpowiedzią PHP, spróbuj tego - Jeśli Twoja strona główna znajduje się pod adresem index.html:

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

Tworzenie repozytorium Git i zatwierdzanie po dodaniu plików:

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

Wdrożenie Heroku -

heroku login
heroku apps:create my-static-site-example
git push heroku master
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.