File statici di Django 404

Non riesco a far apparire i miei file statici. Ho provato varie impostazioni e configurazioni di directory e così via, ma si presentano come 404. Ho installato debug_toolbar, quindi so che STATIC_URL sta raggiungendo il mio contesto di richiesta.

Struttura della directory che mostra / statica (ho anche inserito la directory all’interno della cartella delle app dei pasti e degli utenti, solo per provarla.

/mealmate /mealmate /meals /static /css /bootstrap.min.css /templates /users 

Settings.py (alcune impostazioni importanti sebbene abbia sperimentato una varietà di altre):

 MEDIA_ROOT = os.path.join(PROJECT_PATH, 'media/') STATIC_URL = '/static/' INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', ) WSGI_APPLICATION = 'mealmate.wsgi.application' 

In base.html reso

   

Qualche idea? Grazie

Questa è la soluzione di lavoro per l’accesso statico / media / modello in django per Windows,

settings.py

 import os.path STATIC_ROOT = '' STATIC_URL = '/static/' STATICFILES_DIRS = ( os.path.join('static'), ) 

Se si sta eseguendo questo su un server Web, si copiano i file statici in una cartella accessibile pubblica? Per esempio:

 # web accessible folder STATIC_ROOT = '/home/your_name/www/mealmate/static/' # URL prefix for static files. STATIC_URL = '/static/' # Additional locations of static files STATICFILES_DIRS = ( # location of your application, should not be public web accessible '/home/your_name/website/mealmate/static', ) # List of finder classs that know how to find static files in # various locations. STATICFILES_FINDERS = ( 'django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', ) 

Quindi è ansible utilizzare questo post di file statici Django e copiare i file statici nella cartella accessibile pubblica utilizzando manage.py

 # --link Create a symbolic link to each file instead of copying. # --noinput Do NOT prompt the user for input of any kind. # python manage.py collectstatic -link --noinput 

Spero possa aiutare!

Per me questo è stato causato dall’impostazione di debug su false in settings.py . Una soluzione alternativa è passare l’ --insecure runserver a runserver , ma la vera soluzione è utilizzare un server web appropriato per servire i file statici. Vedi le risposte a questa domanda per maggiori dettagli.

Ho semplicemente aggiunto l’equivalente di

 STATICFILES_DIRS = ( '/absolute_path_to_project/mealmate/static', ) 

per farlo funzionare. Ovviamente, sostituire absolute_path_to_project con il percorso effettivo e, se necessario, aggiungere la lettera di unità.

Assicurati che il compagno di pasti sia nel tuo INSTALLED_APPS

Ero anche bloccato nel problema 404 fino a quando non mi sono reso conto che Apache aveva bloccato le richieste alla directory statica. Ho usato python manage.py collectstatic per copiare tutti i file statici nella directory statica sotto il mio root di progetto, cioè / var / my / site / static . Con

 Alias /static /var/my/site/static  Require all granted  

in /etc/httpd/conf/httpd.conf , ora funziona correttamente.

Se nessuna delle risposte di cui sopra funziona, puoi considerare di controllare la configurazione del tuo server.

Suppongo che tu stia utilizzando Django1.3 + qui.

Innanzitutto, devi definire alcune altre impostazioni:

 STATICFILES_FINDERS = [ 'django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', ] STATICFILES_DIRS = [ path.join(TOP_DIR, 'static'), ] STATIC_ROOT = path.join(TOP_DIR, 'staticfiles') STATIC_URL = '/static/' 

Questo dovrebbe aiutarti a trovare quella directory.

Inoltre, dovresti sempre accedere ai tuoi file statici usando l’ STATIC URL :

  

in Django hai un altro vantaggio per i tuoi modelli ed è ansible colbind statiche come questa e forse questo è il tuo problema!

   

è meglio usare

{% static ‘nomefile’%}

ed è anche più facile sapere di più, mi riferisco a https://docs.djangoproject.com/en/1.11/intro/tutorial06/

dai commenti sopra: esegui questo

 python manage.py findstatic --verbosity 2 css/styles.css 

Nessun file corrispondente trovato per “css / styles.css”.

Guardando nelle seguenti posizioni:
/ Utenti / proprionome / Documenti / Area di lavoro / test / staticfiles

Ho semplicemente rinominato la mia cartella statica in file statici e tutto andava bene. (Sono su osx + django 1.x)

utilizzare la modalità non protetta potrebbe non fare male se si è in una scatola di sviluppo locale, altrimenti si potrebbero ancora ottenere errori 404.

 python manage.py runserver --insecure 

AGGIORNARE

in realtà scavando in settings.py trova la linea di violazione.

 STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'staticfiles'), )