2017-08-24 2 views
0

J'essaye d'apprendre le développement de Django avec Bluemix Cloud Foundry et Python 3.5.3.Bluemix Cloud Foundry, Référencement de fichiers statiques dans Django

J'ai un site Web hello world en cours d'exécution en ce moment. Mais je ne peux pas obtenir des fichiers statiques comme CSS à servir.

Je pense que mes paramètres pour trouver des fichiers statiques ne sont pas corrects.


Ma page servi est censé ressembler à:

correct result

Ce que je veux est:

actual result


-je obtenir le résultat correct localement avec Debug = True dans settings.py, mais pas avec . Je n'arrive pas à obtenir le résultat correct lorsque je suis poussé sur Bluemix, quel que soit le réglage de débogage.

Mes dossiers de projet sont mis en place comme ceci:

Project Folder Structure

l'application django staticfiles est dans ma variable INSTALLED_APPS.

Dans mon dossier settings.py J'ai:

... 
STATIC_URL = '/static/' 
STATIC_ROOT = os.path.join(BASE_DIR, 'static') 
# STATICFILES_DIRS = [ 
#  os.path.join(BASE_DIR, 'bluemixsite/static'), 
#  os.path.join(BASE_DIR, 'bluemixapp/static'), 
# ] 

STATICFILES_DIRS semblaient pas faire de différence avec la recherche de fichiers statiques.

La page du modèle (en cours de chargement) comprend les éléments suivants:

... 
{% load static %} 

    <link rel="stylesheet" type="text/css" href="{% static 'bluemixapp/stylesheet.css' %}" /> 
</head> 
.... 

Avec Debug = False, lors de l'inspection dans firefox, je peux voir ce message sous l'éditeur de style à la fois localement et sur bluemix:

Donc, je n'ai pas les fichiers dans l'emplacement correct, ou Django ne peut pas résoudre les chemins d'accès aux fichiers statiques sur le serveur
The requested URL /static/bluemixapp/stylesheet.css was not found on this server. 


J'ai essayé la commande collectstatic qui copie tous les fichiers statiques dans project_root/static/ dossier, mais cela n'a fait aucune différence.

Apparemment, Bluemix refuse d'exécuter les terminaux Linux (ils se bloquent ou se bloquent au démarrage), donc je ne peux rien faire du côté serveur de cette façon.

Je ne peux pas charger les fichiers statiques sur un serveur distinct.

Toutes les suggestions seraient appréciées.

Répondre

0

Essayez Chargement statique des fichiers statiques au lieu:

{% load static from staticfiles %}

Comme mentionné here.