0

I have a Heroku Ember/RoR application (https://sleepy-forest-31423.herokuapp.com) that is able to be viewed in the browser, but when I try to curl https://sleepy-forest-31423.herokuapp.com, I have the following error:

<!DOCTYPE html>
<html>
<head>
  <title>The page you were looking for doesn't exist (404)</title>
  <meta name="viewport" content="width=device-width,initial-scale=1">
  <style>
  body {
    background-color: #EFEFEF;
    color: #2E2F30;
    text-align: center;
    font-family: arial, sans-serif;
    margin: 0;
  }

  div.dialog {
    width: 95%;
    max-width: 33em;
    margin: 4em auto 0;
  }

  div.dialog > div {
    border: 1px solid #CCC;
    border-right-color: #999;
    border-left-color: #999;
    border-bottom-color: #BBB;
    border-top: #B00100 solid 4px;
    border-top-left-radius: 9px;
    border-top-right-radius: 9px;
    background-color: white;
    padding: 7px 12% 0;
    box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
  }

  h1 {
    font-size: 100%;
    color: #730E15;
    line-height: 1.5em;
  }

  div.dialog > p {
    margin: 0 0 1em;
    padding: 1em;
    background-color: #F7F7F7;
    border: 1px solid #CCC;
    border-right-color: #999;
    border-left-color: #999;
    border-bottom-color: #999;
    border-bottom-left-radius: 4px;
    border-bottom-right-radius: 4px;
    border-top-color: #DADADA;
    color: #666;
    box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
  }
  </style>
</head>

<body>
  <!-- This file lives in public/404.html -->
  <div class="dialog">
    <div>
      <h1>The page you were looking for doesn't exist.</h1>
      <p>You may have mistyped the address or the page may have moved.</p>
    </div>
    <p>If you are the application owner check the logs for more information.</p>
  </div>
</body>
</html>

This is further confirmed by Facebook OG Debugger: Facebook Debugger

What's further is that if I do a view source on the page (view-source:https://sleepy-forest-31423.herokuapp.com/) there is nothing in the body tags but javascript files.

What is happening to make it so I'm not able to curl the website or view the contents of the body?

beckah
  • 1,543
  • 6
  • 28
  • 61
  • Your app's route is probably protected for security reasons. Maybe this other question is a duplicate or will help: http://stackoverflow.com/questions/31371113/404-when-sending-json-to-ror-with-curl – Steve Harris Mar 29 '17 at 22:58
  • @SteveHarris. Thanks for your reply. Other than the line that we can put in the application.rb i'm not sure how we should apply the answer to our problem because right now we are mounting our ember app by doing `mount_ember_app :frontend, to: "/"`. Maybe that's what's screwing us up? – beckah Mar 29 '17 at 23:31

1 Answers1

0

The reason this was happening was because Rails wasn't set to API-mode only and essentially didn't trust Ember with the views which I had mounted at the root

mount_ember_app :frontend, to: "/"

There were a lot of ways to resolve this, but I ended up separating the two services completely so that the frontend of the project (Ember) was hosted on one heroku project while my Rails backend was hosted on another. If my Ember frontend needed to call resources from Rails it could.

If I had wanted to have a unified domain name, for instance, www.somename.com showing the Ember frontend and www.somename.com/api/ showing my rails backend, I could do so by configuring CNAMEs with my domain service provider.

beckah
  • 1,543
  • 6
  • 28
  • 61