Có thể tải lên cấu trúc tệp html và javascript đơn giản lên heroku không?


83

Tôi đang cố gắng triển khai một dự án mã nguồn mở của mình cho heroku, nó rất đơn giản chỉ với html và javascript tĩnh. Nhưng họ không hỗ trợ các trang web tĩnh? Tôi không muốn biến nó thành một dự án Sinatra nếu tôi không có kế hoạch sử dụng bất cứ thứ gì ngoài html và 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

Câu trả lời:



214

Một cách đơn giản là giả mạo ứng dụng HTML dưới dạng Ứng dụng PHP. Heroku xác định đúng các ứng dụng PHP.

  1. Đổi tên tệp index.html của bạn thành home.html.
  2. Tạo một tệp index.php và bao gồm tệp html mục nhập của bạn. Nếu tệp mục nhập HTML của bạn được đặt tên là home.html theo khuyến nghị, thì index.php của bạn sẽ giống như sau:

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

  3. Trong dòng lệnh của bạn trên máy bạn đang đẩy, hãy nhập:

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

Heroku sẽ phát hiện đúng ứng dụng của bạn ngay bây giờ dưới dạng ứng dụng 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 Cảm ơn lemiffe vì bài đăng trên blog của anh ấy: http://www.lemiffe.com/how-to-deploy-a-static-page-to-heroku-the-easy-way/


28
Đây là cách đơn giản hơn, và cần được chấp nhận như là câu trả lời đúng
Glenn Bech

3
lưu ý: Trước tiên, tôi cần thêm composer.json để tính năng này hoạt động. devcenter.heroku.com/articles/...
happygilmore

Thực sự, thực sự tốt. Đã cứu tôi rất nhiều thứ với Node.js, cảm ơn rất nhiều!
davidkelleher

Bạn có thể cần phải thực hiện a git initđể nhận các lệnh git và a heroku createđể lệnh heroku hoạt động
joncodo

5
Để làm cho nó thậm chí còn đơn giản hơn bạn chỉ có thể đổi tên index.html để một index.php
ChairmanMeow

38

Đây là một phương pháp thanh lịch hơn: Chỉ cần thêm một tệp có tên gọi package.jsonHeroku sử dụng đàn hạc làm máy chủ của bạn:

{
  "name": "my-static-site",
  "version": "1.0.0",
  "description": "This will load any static html site",
  "scripts": {
    "start": "harp server --port $PORT"
  },
  "dependencies": {
    "harp": "*"
  }
}

và sau đó triển khai tới Heroku. Làm xong!

Thông tin thêm: https://harpjs.com/docs/deployment/heroku


3
Trong tất cả các câu trả lời, đây là một trong những công tác như của tháng 11 2016
Sergio Majluf

2
vâng cái này là nhanh chóng và đơn giản
user2431114

harp server, vì một số lý do, không thể tải less file. Đã thử với những điều php answertrên và điều đó đã hiệu quả. Mặc dù vậy, giải pháp này thực sự đơn giản. Cảm ơn ...
Aakash

12

Đây là những gì đã làm việc cho tôi:

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

Nếu điểm nhập là main.html, hãy tạo index.phpvới một dòng nội dung sau:

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

và sau đó thực hiện các bước sau:

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

Tới http://myApp.herokuapp.com/ và ứng dụng của bạn nên được trực tuyến bây giờ.


5

Có một cách rất dễ dàng để làm điều đó chỉ trong trường hợp bất kỳ ai thấy các câu trả lời ở trên khó làm theo.

Bạn có trang web tĩnh của mình với gốc tại index.html(giả sử), bây giờ bạn muốn triển khai nó vào Heroku, làm thế nào?

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 - 
{}

Bây giờ chỉ cần chạy git push heroku mastervà bạn đã hoàn tất!


2

Tôi biết điều này có thể hơi cũ nhưng cuối cùng tôi đã sử dụng Vienna Gemw để triển khai điều này, về cơ bản nó là một ứng dụng Rack nhỏ cho phép bạn phục vụ mọi thứ trong thư mục công cộng của mình (css, hình ảnh, js, html) chỉ với một vài dòng của Ruby:

require 'vienna'
run Vienna

Ngoài ra, để triển khai điều này trên heroku, bạn cần tạo một Gemfile:

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

Sau đó, chạy cài đặt gói, trong trường hợp bạn chưa cài đặt gói đá quý, chỉ cần chạy trên thiết bị đầu cuối của bạn:

sudo gem install bundle

Và đó là khá nhiều, bạn có thể có thêm thông tin trên: http://kmikael.com/2013/05/28/creating-static-sites-in-ruby-with-rack/


2

Làm theo các bước sau

Bước 1

Kiểu touch composer.json index.php index.html

Bước 2 trong kiểu index.php:

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

và trong loại composer.json {}

Bước 3

git add .

git commit -m "[your message]"

git push ['yourrepo'] ['yourbranch']

0

Hmmm ... một lý do mà heroku từ chối ứng dụng có thể là nó đang cố gắng phát hiện đường dẫn nội dung trong các ứng dụng rails 3.1.x mà tôi nghĩ.

Tại sao không tạo ứng dụng của bạn trên ngăn xếp mặc định Bamboo bằng cách chỉ chạy

heroku create

Sau đó, tất cả js và css của bạn có thể đi vào thư mục chung trong ứng dụng rails với đường dẫn nội dung đã bị hủy kích hoạt.


5
Ý nghĩ sử dụng Rails để phân phát nội dung tĩnh khiến tôi muốn làm tổn thương ai đó :)
Jeremy Smith

Khi bạn chỉ có js / html / css, nó sẽ tìm kiếm ứng dụng node.js. Nó không thành công khi nó không tìm thấy nó, bất kể ngăn xếp bạn đang cố gắng chạy nó với.
tươi5447

0

Chà, bất cứ khi nào trang Web của bạn chứa HTML, CSS và JavaScript, vì vậy chỉ cần làm theo 2 bước:

1) Tạo một tệp có tên là index.html (giữ nguyên mọi thứ trong đó) ví dụ: script, stylesheet & body.

2) Bây giờ, hãy thay đổi các tệp này, sao chép và dán các tệp này nhưng thay đổi miền thành index.php

Sau đó triển khai trên Heroku.

Do đó, phương pháp này sẽ giúp bạn triển khai các Trang web của mình


0

Cập nhật năm 2020:

Nếu bạn nhận được một trang trống với câu trả lời PHP được đề cập ở đây, hãy thử điều này - Nếu trang chủ của bạn ở index.html:

echo '<?php header( 'Location: /index.html' ) ;  ?>' > index.php
echo '{}' > composer.json

Tạo repo Git và cam kết sau khi thêm tệp:

git init
git add .
git commit -m "My site ready for deployment."

Triển khai Heroku -

heroku login
heroku apps:create my-static-site-example
git push heroku master
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.