it-swarm.it

Problema di Heroku: la pagina che stavi cercando non esiste

Ho seguito il libro fino alla fine del capitolo 5 e funziona correttamente nella mia workstation Linux Quando invio a Heroku, tutti i dati vengono spinti correttamente, ma quando provo ad aprire Heroku (http://vivid-sky-685.heroku.com )

Ottengo un messaggio 404.

La pagina che stavi cercando non esiste . Potresti aver sbagliato l'indirizzo o la pagina potrebbe essere stata spostata.

Di seguito è il mio Gemfile per l'applicazione

source 'http://rubygems.org'
gem 'Rails', '3.0.5'
gem 'sqlite3'

group :development do
  gem 'rspec-Rails', '2.5.0'
end

group :test do
  gem 'rspec', '2.5.0'
  gem 'webrat', '0.7.1'
  gem 'spork', '0.9.0.rc4'
end

gem 'rake','~> 0.8.7'

Qualche idea su cosa potrebbe andare storto?

@odin ecco i miei registri di heroku, grazie 

2011-09-11T10:41:57+00:00 heroku[router]: GET vivid-sky-685.heroku.com/y dyno=web.1 queue=0 wait=0ms service=5ms status=404 bytes=728
2011-09-11T10:41:57+00:00 app[web.1]: 
2011-09-11T10:41:57+00:00 app[web.1]: 
2011-09-11T10:41:57+00:00 app[web.1]: Started GET "/y" for 93.186.31.80 at 2011-09-11 03:41:57 -0700
2011-09-11T10:41:57+00:00 app[web.1]: 
2011-09-11T10:41:57+00:00 app[web.1]: ActionController::RoutingError (No route matches "/y"):
2011-09-11T10:41:57+00:00 app[web.1]:   
2011-09-11T10:41:57+00:00 app[web.1]: 
2011-09-11T10:41:57+00:00 app[web.1]: 
2011-09-11T10:41:57+00:00 heroku[nginx]: 93.186.31.80 - - [11/Sep/2011:03:41:57 -0700] "GET /y HTTP/1.1" 404 728 "-" "Mozilla/5.0 (BlackBerry; U; BlackBerry 9300; en) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.546 Mobile Safari/534.8+" vivid-sky-685.heroku.com
2011-09-11T11:45:28+00:00 heroku[web.1]: Idl

2011-09-11T11:45:29+00:00 heroku[web.1]: State changed from up to down
2011-09-11T11:45:29+00:00 heroku[web.1]: State changed from down to created
2011-09-11T11:45:29+00:00 heroku[web.1]: State changed from created to starting
2011-09-11T11:45:30+00:00 heroku[web.1]: Stopping process with SIGTERM
2011-09-11T11:45:30+00:00 app[web.1]: >> Stopping ...
2011-09-11T11:45:30+00:00 heroku[web.1]: Process exited
2011-09-11T11:45:30+00:00 heroku[web.1]: Starting process with command `thin -p 16738 -e production -R /home/heroku_rack/heroku.ru start`
2011-09-11T11:45:33+00:00 app[web.1]: >> Thin web server (v1.2.6 codename Crazy Delicious)
2011-09-11T11:45:33+00:00 app[web.1]: >> Maximum connections set to 1024
2011-09-11T11:45:33+00:00 app[web.1]: >> Listening on 0.0.0.0:16738, CTRL+C to stop
2011-09-11T11:45:33+00:00 heroku[web.1]: State changed from starting to up
2011-09-11T12:53:00+00:00 heroku[web.1]: Idling
2011-09-11T12:53:01+00:00 heroku[web.1]: State changed from up to down
2011-09-11T12:53:02+00:00 heroku[web.1]: Stopping process with SIGTERM
2011-09-11T12:53:02+00:00 app[web.1]: >> Stopping ...
2011-09-11T12:53:02+00:00 heroku[web.1]: Process exited
2011-09-11T13:18:21+00:00 heroku[rake.1]: State changed from created to starting
2011-09-11T13:18:23+00:00 app[rake.1]: Awaiting client
2011-09-11T13:18:23+00:00 app[rake.1]: Starting process with command `bundle exec rake db:migrate`


2011-09-11T13:18:26+00:00 heroku[rake.1]: Process exited
2011-09-11T13:18:26+00:00 heroku[rake.1]: State changed from up to complete
2011-09-11T13:20:02+00:00 heroku[web.1]: Unidling
2011-09-11T13:20:02+00:00 heroku[web.1]: State changed from down to created
2011-09-11T13:20:02+00:00 heroku[web.1]: State changed from created to starting
2011-09-11T13:20:04+00:00 heroku[web.1]: Starting process with command `thin -p 48393 -e production -R /home/heroku_rack/heroku.ru start`
2011-09-11T13:20:06+00:00 app[web.1]: >> Thin web server (v1.2.6 codename Crazy Delicious)
2011-09-11T13:20:06+00:00 app[web.1]: >> Maximum connections set to 1024
2011-09-11T13:20:06+00:00 app[web.1]: >> Listening on 0.0.0.0:48393, CTRL+C to stop
2011-09-11T13:20:07+00:00 heroku[web.1]: State changed from starting to up
2011-09-11T13:20:07+00:00 app[web.1]: 
2011-09-11T13:20:07+00:00 app[web.1]: 
2011-09-11T13:20:07+00:00 app[web.1]: Started GET "/" for 118.137.144.220 at 2011-09-11 06:20:07 -0700
2011-09-11T13:20:08+00:00 app[web.1]: 
2011-09-11T13:20:08+00:00 app[web.1]: ActionController::RoutingError (uninitialized constant PagesController):
2011-09-11T13:20:08+00:00 app[web.1]:   
2011-09-11T13:20:08+00:00 app[web.1]: 
2011-09-11T13:20:08+00:00 app[web.1]: 
2011-09-11T13:20:08+00:00 heroku[router]: GET vivid-sky-685.heroku.com/ dyno=web.1 queue=0 wait=0ms service=403ms status=404 bytes=728
2011-09-11T13:20:08+00:00 heroku[nginx]: 118.137.144.220 - - [11/Sep/2011:06:20:08 -0700] "GET / HTTP/1.1" 404 728 "-" "Mozilla/5.0 (X11; Linux i686; rv:2.0) Gecko/20100101 Firefox/4.0" vivid-sky-685.heroku.com
24
widjajayd

Ho avuto lo stesso problema; tuttavia, dopo aver modificato 1 codice di riga di production.rb in config/environments/production.rb da

config.assets.compile = false

a

config.assets.compile = true

commetti il ​​nuovo cambiamento. Quindi la mia app di esempio funziona bene su heroku

9
Tony Nguyen

So che è un vecchio problema, ma mi sono imbattuto anche in questo. Mi sono reso conto che non ho cambiato la root route in config/routes.rb prima di spingere. La mancata modifica potrebbe comportare una pagina di benvenuto localmente, ma su heroku otterrà l'errore sopra riportato.

26
xji

Sto usando postgresql, e ho anche avuto la pagina non visualizzata su heroku.

Questo comando lo ha risolto:

heroku run rake db:setup

e poi

heroku rake db:migrate

Mi ero già trasferito prima, ma non avevo fatto prima il setup.

Ho anche provato a impostare

config.assets.compile = true

in production.rb, ma questo non ha fatto differenza.

7
Ben Wheeler

Hai provato a girare in modalità di produzione localmente? Prova Rails server -e production e vedi se ottieni lo stesso errore, che puoi quindi eseguire il debug. Assicurati anche di aver eseguito heroku rake db:migrate.

4
David

Nel mio caso si trattava di una pagina iniziale mancante che non causava problemi nella modalità di sviluppo, ma causava il problema sopra riportato su heroku. La risposta accettata su questo thread getta più luce.

2
Nick

Anche in questo problema. Risolto impostando una rotta radice. Nel mio caso, root 'pages#home' in config/routes.rb

Se la root route non è impostata, verrai reindirizzato a localhost: 3000. Quindi, 

La pagina che stavi cercando non esiste. Potresti aver sbagliato a digitare il indirizzo o la pagina potrebbe essere stata spostata.

1
limaBEAN

1. Impostare sempre una root nei percorsi. That's Rails 101

Non andrei a fare sempre false pre-compilazioni di asset. Per l'app di produzione, ritengo che migliori la velocità complessiva se le risorse sono state pre-compilate. 

2. Come regola generale eseguo sempre rake assets:precompile prima di premere su git. Per favore provalo e poi impegnarsi a git repository e quindi heroku. Do heroku restart

3. Un'altra causa potrebbe essere heroku rake db: migrare, controlla se l'hai fatto

4. Anche questa è la mia configurazione Gemfile per i gruppi di sviluppo e produzione

group :development do 
    gem 'sqlite3'        
end

group :production do    
    gem 'pg'
    gem 'Rails_12factor'
    gem 'heroku-deflater'   
end
1
Saurav Prakash

Quindi ho dovuto eseguire in questo ordine e ha funzionato per me

$ heroku rake db:migrate
$ heroku run rake db:setup
0

Ho avuto lo stesso problema, ma il fatto è che all'app manca la home come root. La home page predefinita per Heroku è questa HTML la pagina predefinita . Ma se provi tutti i tuoi percorsi definiti, funzioneranno come: 

appname.herokuapp.com/route

0
Isaac ts

Ho avuto un problema molto simile a heroku, ho trovato la risposta da questa domanda:

Le rotte di RefineryCMS per la Home page non funzionano

Per salvare la tua lettura, la soluzione era aggiornare "Home" usando le Opzioni avanzate, c'è una domanda:

"Inoltra questa pagina a un altro sito Web o pagina"

Riempi questo con un / e dovrebbe funzionare. Questo suona un po 'indietro, dato che in realtà sta impostando/mia_page per reindirizzare su "/". Ma il modo di pensarci è:

L'estensione delle pagine di raffineria sta cercando una pagina con l'url '/' per essere la home page. Così dicendo alla pagina intitolata "Home" che lo vuoi per avere l'url '/' lo stai impostando come home page definitiva come per quanto riguarda l'estensione delle pagine della raffineria. (citazione da @Philip Arndt)

0
Abe Petrillo

Ho avuto lo stesso errore ma ho capito che non avevo modificato il verbo HTML da GET a ROOT nel file config/routes.rb.

Era get "/hello", to: "application#hello"

L'ho aggiornato su root "application#hello"

L'ho poi spinto a cedere e distribuirlo alla produzione.

0
jerof

Specifica la versione Ruby nell'app Rails 5 richiede Ruby 2.2.0 o successivo. Heroku ha una versione recente di Ruby installata per impostazione predefinita, tuttavia è possibile specificare una versione esatta utilizzando Ruby DSL nel proprio file Gemfile.

Alla fine di Gemfile aggiungi:

Rubino "2.4.1"

0
Bryan Memeti