J'essaie de déployer un de mes projets open source sur heroku, il est par nécessité très simple avec du html statique et du javascript. Mais ne supportent-ils pas les sites statiques? Je préférerais ne pas en faire un projet Sinatra si je ne prévois jamais utiliser autre chose que du HTML et du javascript.
~/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
Vous pouvez utiliser rack pour faire ceci:
https://devcenter.heroku.com/articles/static-sites-on-herok
ou vous pouvez utiliser quelque chose comme Octopress/Jekyll qui utilise sinatra.
Mais vous avez besoin d'un minimum de pile pour servir du contenu HTML statique
Un moyen simple consiste à masquer l'application HTML en tant qu'application PHP App. Heroku identifie correctement PHP apps.
Créez un fichier index.php et incluez votre fichier HTML d'entrée. Si votre fichier d'entrée HTML s'appelle home.html comme recommandé, votre index.php devrait ressembler à ceci:
<?php include_once("home.html"); ?>
Dans votre ligne de commande sur la machine à partir de laquelle vous appuyez, tapez:
git add .
git commit -m 'your commit message'
git Push heroku master
Heroku devrait détecter correctement votre application maintenant en tant qu'application 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
...
Mad Merci à lemiffe pour son billet de blog: http://www.lemiffe.com/how-to-deploy-a-static-page-to-heroku-the-easy-way/
Voici une méthode plus élégante: Ajoutez simplement un fichier nommé package.json
qui demande à Heroku d’utiliser harpe comme serveur:
{
"name": "my-static-site",
"version": "1.0.0",
"description": "This will load any static html site",
"scripts": {
"start": "harp server --port $PORT"
},
"dependencies": {
"harp": "*"
}
}
puis déployer à Heroku. Terminé!
Informations complémentaires: https://harpjs.com/docs/deployment/herok
Voici ce qui a fonctionné pour moi:
cd myProject
git init
heroku create myApp
heroku git:remote -a myApp
Si le point d'entrée est main.html
, créer index.php
avec cette seule ligne de contenu:
<?php include_once("main.html"); ?>
puis effectuez les étapes suivantes:
echo '{}' > composer.json
git add .
git commit -am "first commit"
git Push heroku master
Allez à http://myApp.herokuapp.com/ et votre application devrait être en ligne maintenant.
Il existe un moyen très simple de le faire au cas où quelqu'un trouverait les réponses ci-dessus difficiles à suivre.
Vous avez votre site web statique avec la racine à index.html
(par exemple), maintenant vous voulez le diplomater à Heroku, comment?
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 -
{}
Maintenant, lancez simplement git Push heroku master
et tu as fini!
Suivez ces étapes
étape 1
Type touch composer.json index.php index.html
Étape 2 dans le type index.php:
<?php include_once("index.html"); ?>
et dans le type composer.json {}
étape
git add .
git commit -m "[your message]"
git Push ['yourrepo'] ['yourbranch']
Je sais que c'est peut-être un peu vieux, mais j'ai finalement utilisé Vienna Gemw pour le déployer. En gros, c'est une petite application Rack qui vous permettra de tout servir dans votre dossier public (css, images, js, html) en quelques lignes. de Ruby:
require 'vienna'
run Vienna
De plus, pour déployer ceci sur heroku, vous devez créer un Gemfile:
source 'https://rubygems.org'
gem 'rack'
gem 'vienna'
Ensuite, lancez l’installation de paquet, au cas où vous n’auriez pas la gem d’emballage installée, exécutez simplement sur votre terminal:
Sudo gem install bundle
Et c'est à peu près tout cela, vous pouvez avoir plus d'informations sur: http://kmikael.com/2013/05/28/creating-static-sites-in-Ruby-with-rack/
Eh bien, chaque fois que votre page Web contient du HTML, du CSS et du JavaScript, suivez simplement 2 étapes:
1) Créez un fichier sous le nom index.html (gardez tout en lui), ex: script, stylesheet & body.
2) Maintenant, changez ces fichiers, copiez et collez ces mêmes fichiers mais changez de domaine en index.php
Puis déployer sur un Heroku.
Cette méthode vous aidera donc à déployer vos pages Web.
Hmmm ... une des raisons pour lesquelles heroku rejette l'application pourrait être qu'il tente de détecter un pipeline d'actifs dans Rails 3.1.x apps je pense.
Pourquoi ne pas créer votre application sur la pile par défaut Bambou en courant juste
heroku create
Ensuite, tous vos fichiers js et css peuvent être placés dans un dossier public dans Rails avec le pipeline d’actifs désactivé.