2014-06-26 16 views
15

Mam stronę internetową, która używa kolby. Kiedyś działało dobrze, ale od niedawna każde żądanie zwraca 404 i wygląda na to, że nie może znaleźć właściwych punktów końcowych. Jednak:Niewytłumaczalne kolby 404 błędy

  • Lokalnie strona wciąż działa, tylko na moim VPS pokazuje to dziwne zachowanie.
  • url_for działa i app.view_functions zawiera również wszystkie trasy.
  • A jednak, nadal otrzymuję 404 na VPS, nawet dla / i wszystko pod /static/.

Oto część kodu, to trochę za dużo, aby pokazać wszystko to i to nie wszystkie istotne:

#snip 

from flask import Flask, render_template, abort, request, redirect, url_for, session 
from flask.ext.babelex import Babel 
from flask.ext import babelex 

#snip 

app = Flask(__name__) 
app.secret_key = #snip 

#snip 

#just one of the routes 
@app.route('/') 
def about(): 
    return render_template('about.html') 

#snip 

@app.errorhandler(404) 
def page_not_found(e): 
    #snip 
    return render_template('404.html'), 404 

#snip 

if __name__ == '__main__': 
    app.run(debug=True) 
else: 
    app.config.update(
     SERVER_NAME='snip.snip.com:80', 
     APPLICATION_ROOT='/', 
    ) 
+0

Czy przejrzałeś dzienniki serwera? powinna być jakaś wskazówka co do tego, co się tam dzieje. – mata

+0

Mam. Niestety nie pokazują niczego niezwykłego (poza tym, że kod statusu każdego dostępu to 404). – Robin

+0

to prawdopodobnie dziennik dostępu, musisz przejrzeć dziennik błędów. – mata

Odpowiedz

7

wiem, że to jest stary, ale ja po prostu wpadł na ten sam problem. Twoja może być dowolną liczbą problemów, ale moja była to, że skomentowałem linię from app import views w moim pliku __init__.py. Dało mi to ten sam symptom: każdy punkt końcowy, który wymagał @app.route, a widok reagował na 404. Trasy statyczne (.js i .css) były w porządku (to była moja wskazówka).

+0

Uwaga: Musiałem dodać 'z widoku importu aplikacji' do ** ostatniej linii ** w moim 'app/__ init __. py' –

26

Miałem ten sam problem. Miałem go, ponieważ zmieniłam parametry SERVER_NAME konfiguracji na nazwę, która nie jest nazwą serwera.

Możesz rozwiązać ten problem, usuwając SERVER_NAME z konfiguracji, jeśli ją masz.

+5

SAVED ME! Dodałem go po tym, jak mam prawdziwy adres URL, nie działał, mimo że pasował do adresu URL. Usunięto go i zaczął działać. Dziękuję Ci. – nycynik

+0

Miałem takie samo zachowanie, 404s wszędzie, dopóki nie usunąłem "SERVER_NAME" z konfiguracji. Jednak nie rozumiem, dlaczego tak naprawdę tworzy tę sytuację. Czy istnieje jakieś wyjaśnienie lub dokumentacja tego zachowania? – npdoty

Powiązane problemy