web-dev-qa-db-fra.com

Est-il possible de télécharger une structure de fichier html et javascript simple vers heroku?

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
80
Jeremy Smith

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

12
Tiago Peczenyj

Un moyen simple consiste à masquer l'application HTML en tant qu'application PHP App. Heroku identifie correctement PHP apps.

  1. Renommez votre fichier index.html en home.html.
  2. 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"); ?>

  3. 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/

204
pkanane

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

38
Harlan T Wood

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.

11
qed

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!

4
Scrotch

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']
2
user4920718

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/

2
Ronier Lopez

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.

0
Aamir M Meman

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é.

0
Hishalv