2012-05-11 12 views
73

Próbuję wdrożyć mój projekt open source do Heroku, z konieczności jest to bardzo proste dzięki statycznym html i javascript. Ale czy nie obsługują statycznych stron? Wolałbym nie robić tego projektu Sinatra, jeśli nie planuję używać niczego oprócz html i javascript.Czy można przesłać prostą strukturę plików html i javascript do heroku?

~/sites/d4-site $ heroku create --stack cedar 
Creating quiet-ice-4769... done, stack is cedar 
http://quiet-ice-4769.herokuapp.com/ | [email protected]:quiet-ice-4769.git 
Git remote heroku added 


~/sites/d4-site $ git remote -v 
heroku [email protected]:quiet-ice-4769.git (fetch) 
heroku [email protected]: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 

Odpowiedz

13

Można użyć stojaka to zrobić:

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

lub użyć coś takiego Octopress/Jekylla kto używa Sinatrę.

Ale trzeba minimalną stos służyć html zawartości statycznej

+14

PO nie poprosił o rozwiązanie w języku Ruby. –

+2

ponownie przeczytać moje ostatnie zdanie. –

+17

Przeczytaj ponownie moje zdanie. –

0

Hmmm ... jeden z powodów, że Heroku odrzuca aplikację może być to, że próbuje wykryć rurociągu aktywów w szynach aplikacji 3.1.x myślę.

Dlaczego nie stworzyć swoją aplikację w domyślnej stosie Bamboo uruchamiając tylko

heroku create 

następnie wszystkie JS i CSS może przejść do folderu publicznego w szynach app z rurociągu aktywów wyłączona.

+5

Myśl o używaniu Railsów do wyświetlania statycznych treści sprawia, że ​​chcę kogoś skrzywdzić :) –

+0

Gdy masz tylko plik js/html/css, szuka aplikacji node.js. Nie powiedzie się, gdy go nie znajdzie, niezależnie od tego, z jakim stosem próbujesz go uruchomić. – fresh5447

187

Prostym sposobem jest maskaradowanie 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 wpisu. Jeśli Twój plik HTML ma nazwę home.html zgodnie z zaleceniami, twój indeks.php powinna wyglądać następująco:

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

  3. W linii komend na maszynie, którą pcha z wpisz:

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

Heroku powinien prawidłowo wykryć aplikację teraz jako Aplikacja 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 
... 

Szalenie Dzięki lemiffe za jego wpis na blogu: http://www.lemiffe.com/how-to-deploy-a-static-page-to-heroku-the-easy-way/

+21

To jest DROGA prostsza i powinna być akceptowana jako poprawna odpowiedź –

+1

To zadziałało dla mnie. Dzięki. – cheshireoctopus

+3

uwaga: Najpierw musiałem dodać composer.json, aby to działało. https://devcenter.heroku.com/articles/getting-started-with-php#a-hello-world-application – happygilmore

2

Wiem, że może to być trochę stare, ale skończyło się na tym, że użyłem Wiednia Gemw do wdrożenia tego, w zasadzie jest to mała aplikacja Rack, która pozwoli ci serwować wszystko w twoim publicznym folderze (CSS, obrazy, js, html) z zaledwie kilku linii Ruby:

require 'vienna' 
run Vienna 

także do wdrażania tego na Heroku trzeba stworzyć Gemfile:

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

następnie uruchomić pakiet zainstalować , na wypadek gdybyś nie miał insta pakietu gem lled wystarczy uruchomić na swoim terminalu:

sudo gem install bundle 

i to dość dużo, można uzyskać więcej informacji na: http://kmikael.com/2013/05/28/creating-static-sites-in-ruby-with-rack/

11

Oto co pracował dla mnie:

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

Jeśli wpis punkt to main.html, utwórz index.php z tą pojedynczą linią treści:

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

a następnie wykonać następujące czynności:

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

Przejdź do http://myApp.herokuapp.com/ a aplikacja powinna być teraz w Internecie.

0

Dobrze, gdy twoja strona internetowa zawierają HTML, CSS i JavaScript, tak postępować tylko 2 etapy:

1) Należy podać nazwę jednego pliku index.html (jak utrzymać evreything w nim) Ex: skrypcie, stylesheet & ciało.

2) Teraz zmienić te plik, skopiuj i wklej te sam plik, ale zmienić domenę do index.php

następnie wdrożyć na Heroku.

Stąd ta metoda pomoże Ci wdrożyć stron internetowych

2

Jest to bardzo łatwy sposób to zrobić tylko w przypadku ktoś znalazł powyższe odpowiedzi trudne do naśladowania.
Masz swoją statyczną stronę z rootem na index.html (powiedzmy), teraz chcesz ją zamienić na Heroku, jak?

git init zainicjować repo git

git add -A dodać pliki

git commit -m "init commit" popełnić pliki

teraz dodać dwa pliki w katalogu głównym, composer.json i index.php jak

touch composer.json

touch index.php
Teraz zmień nazwę root html z index.html na home.html, a następnie dodaj to Linia do index.php,

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

następnie dodać {} do composer.json.

Teraz wystarczy uruchomić git push heroku master i gotowe!

27

Oto bardziej elegancki sposób: wystarczy dodać plik o nazwie package.json który mówi Heroku używać harp jako serwer:

{ 
    "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ć do Heroku. Gotowe!

Dalsze informacje: https://harpjs.com/docs/deployment/heroku

+2

Ze wszystkich odpowiedzi, to jest działający od listopada 2016 roku –

+2

tak, ten jest szybki i prosty – user2431114

+2

to jest bardzo dobre rozwiązanie. Dzięki – Reboot

Powiązane problemy