是否有可能上传一个简单的HTML和JavaScript文件结构到Heroku?
我正在尝试将我的一个开源项目部署到heroku,只需要静态的html和javascript就可以了。 但是他们不支持静态网站吗? 我宁愿不把它做成一个Sinatra项目,如果我不打算使用任何东西,但HTML和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
你可以使用机架来做到这一点:
https://devcenter.heroku.com/articles/static-sites-on-heroku
或者你可以使用像使用Sinatra的Octopress / Jekyll。
但是,您需要最小的堆栈来提供html静态内容
一个简单的方法是将HTML应用程序伪装成一个PHP应用程序。 Heroku正确识别PHP应用程序。
- 将您的index.html文件重命名为home.html。
-
创build一个index.php文件,并包含您的条目html文件。 如果您的HTML条目文件按照build议命名为home.html,那么您的index.php应该如下所示:
<?php include_once("home.html"); ?>
-
在您推送的计算机上的命令行中,键入:
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/
下面是一个更加优雅的方法:只需添加一个叫做package.json
的文件,它告诉Heroku使用harp作为你的服务器:
{ "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
这是什么对我有用:
cd myProject git init heroku create myApp heroku git:remote -a myApp
如果入口点是main.html
,则用这一行内容创buildindex.php
:
<?php include_once("main.html"); ?>
然后执行以下步骤:
echo '{}' > composer.json git add . git commit -am "first commit" git push heroku master
我知道这可能有点老,但我最终使用维也纳gem来部署这个,基本上它是一个小型的机架应用程序,可以让你在公共文件夹(CSS,图像,JS,HTML)只用几行Ruby的:
require 'vienna' run Vienna
另外,为了在heroku上部署,你需要创build一个Gemfile:
source 'https://rubygems.org' gem 'rack' gem 'vienna'
然后运行bundle install,以防你没有安装bundle gem,只能在你的terminal上运行:
sudo gem install bundle
而这其中,你可以有更多的信息: http : //kmikael.com/2013/05/28/creating-static-sites-in-ruby-with-rack/
有一个非常简单的方法来做到这一点,以防万一有人发现上述答案难以遵循。
你有你的静态网站在index.html的根目录(说),现在你想把它部署到Heroku,怎么样?
git init
初始化一个git回购
git add -A
添加文件
git commit -m "init commit"
提交文件
现在在root,composer.json和index.php中添加两个文件,
touch composer.json
touch index.php
现在将index.html
根html重命名为home.html
,然后将此行添加到index.php,
<?php include_once("home.html"); ?>
然后将{}
添加到composer.json。
现在只需运行git push heroku master
,就完成了!
嗯… heroku拒绝应用程序的原因之一可能是它试图检测资产pipe道在rails 3.1.x应用程序,我认为。
为什么不通过运行只在默认的堆栈上创build你的应用程序
heroku create
然后,您的所有js和css都可以在资产pipe道停用的情况下进入rails应用程序中的公共文件夹。
那么,只要你的网页包含HTML,CSS和JavaScript,那么只要按照以下两个步骤操作:
1)将一个文件命名为index.html(保留其中的任何内容)ex:script,stylesheet&body。
2)现在,更改这些文件,复制并粘贴这些相同的文件,但将域名更改为index.php
然后部署在Heroku上。
因此,这种方法将帮助您部署您的网页
- 使用Heroku调度程序与Node.js
- 我应该如何解释Heroku H18错误?
- 你如何写MySQL和Postgres的不区分大小写的查询?
- 允许CORS REST请求到Heroku上的Express / Node.js应用程序
- 如何解决错误“”生产环境“中缺less`secret_key_base`(Rails 4.1)
- “git push heroku master”仍然要求authentication
- 如何将不同的本地Git分支推送到Heroku / master
- 在Heroku中部署Rails 3.1项目时出现问题:无法findJavaScript运行时
- 如何重置Heroku应用程序并重新提交一切?