Hosting
Heroku: No default language could be detected for this app.
I was uploading a vanilla JavaScript application to heroku.
Looks like I will need a buildpack for it to deploy. This is so Heroku can understand what type of app it has.
Solution1: Just deploy it as a github page.
Since its a static site, there is nothing “serving” index.html, and heroku is a cloud platform, hosting apps, not a “webhost” in the web 2.0 sense.
Since I want to keep everything on heroku for now, lets see what else we can do.
Attempted Solution: rename index.html to index.php
The least effort solution is to rename your default file to index.php and redeploy. Heroku will detect it as a PHP site and use that buildpack. – John Beynon
Very curious! Would this work? Why not try it out.
hmm appears to work! I was going to deploy a sinatra app or ry the heroku static bundle and I will probably do that anyway but this quick solution can be a real timesaver!
Deploy your Rails API onto Heroku
Go to your Heroku Dashboard. Click “new”-> “create new app”
Give your app a name and click “Create app”
There are several ways to deploy
- Heroku CLI – push your project up to Heroku from your command line
- Github – Heroku is connected to github, so everytime github is updated your app is
- Dropbox connected
- Container Registry
We will be using Heroku CLI. If you need to install use these instructions
By default Heroku ONLY supports the master branch. If you want to push up a branch other than master follow these instructions.
Add Heroku as a remote to your project
heroku git:remote -a name-of-your-heroku-app
Push your project to Heroku
git push heroku master
Did you just get an error? Did you use sqlite3 for your project?
remote: An error occurred while installing sqlite3 (1.3.13), and Bundler cannot
remote: continue.
remote: Make sure that `gem install sqlite3 -v ‘1.3.13’` succeeds before bundling
remote:
remote: In Gemfile:
remote: sqlite3
remote: !
remote: ! Failed to install gems via Bundler.
Migrate and seed your database
In your command line run the following commands.
heroku run rake db:migrate
heroku run rake db:seed
Test your API using Postman
To get the address, just go back to the Heroku dashboard and click on “Open app” to get the link to your online api
If you made it this far, your API should be deployed and now test it as you did locally (you did test locally didn’t you???).
The reason you need postman is if you setup your Rails API correctly when you query your site via browser you should get an error
This appname-api.herokuapp.com page can’t be found
but if you connect to it via postman you should get back the appropriate response
I couldn’t get into on of my heroku sites
Strange news on heroku, one of my heroku apps was not working even though nothing had changed.
This nameofmyapp-api.herokuapp.com page can’t be found
No webpage was found for the web address: https: // nameofmyapp-api.herokuapp.com/
HTTP ERROR 404
The problem doesn’t appear to be an app issue, rather a DNS issue.
Last I had checked it, it was working fine. I had used it on and off for several days. After about a week, I came back to it and found it in this state. I even clicked the app from the “Open app” tab in heroku. I don’t want to rename the app to see if it would work, because I should not have to do that.
Steps taken
- Dynos restarted
- Heroku log checked.
- Run postman against the API
Then I realize that I am looking at the API version of the app, not the similarly named frontend.
The api doesn’t respond to requests at the top level route. That is by design. The front end is named https://nameofmyapp-app.herokuapp.com/ similar to https://nameofmyapp-api.herokuapp.com/.
Ways to prevent this in the future:
- Add “API” to the beginning of the name rather then the end.
- Add custom domain to the front end
- READ CAREFULLY!