是否可以将简单的html和javascript文件结构上传到heroku?


83

我正在尝试将我的一个开放源代码项目部署到heroku,这必然非常简单,只需静态html和javascript。但是它们不支持静态网站吗?如果我不打算使用除html和javascript之外的任何东西,我宁愿不将其设为Sinatra项目。

~/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

Answers:



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

疯狂感谢lemiffe的博客文章:http : //www.lemiffe.com/how-to-deploy-a-static-page-to-heroku-the-easy-way/


28
这更简单,应该被接受为正确答案
Glenn Bech 2014年

3
注意:我需要先添加composer.json才能使其正常工作。devcenter.heroku.com/articles/...
happygilmore

真的,真的很好。帮我省去了很多关于Node.js的麻烦,非常感谢!
davidkelleher 2014年

您可能需要执行一项操作git init以获取git命令,并执行一项heroku create以使heroku命令正常工作
joncodo 2015年

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
Sergio Majluf

2
是的,这是一个快速而简单的方法
user2431114 '16

harp server,由于某种原因,无法加载less file。尝试了php answer以上,并且有效。虽然,此解决方案非常简单。谢谢...
Aakash

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,图片,js,html)中的所有内容Ruby:

require 'vienna'
run Vienna

另外,要在heroku上部署它,您需要创建一个Gemfile:

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

然后运行bundle install,以防万一您没有在终端上运行bundle gem:

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中输入{}

第三步

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 2014年

0

好的,只要您的网页包含HTML,CSS和JavaScript,那么只需执行以下两个步骤即可:

1)将一个文件命名为index.html(保留evreything),例如:script,stylesheet和body。

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.