2016-08-04 4 views
1

他のスタックのソリューションをフォローしようとしましたが、Django静的ファイルを本番環境で提供していましたが、動作させることができませんでした。私の静的ファイルは私のdjango appフォルダ(リーグ)の中にあります。静的ファイルを提供するdjango 1.9 productionエラー

私のCSSファイルが正しく読み込まれていません。私はクロームで、コンソールに次のエラーを得た:

Resource interpreted as Stylesheet but transferred with MIME type text/html 
Uncaught SyntaxError: Unexpected token ! 
profile:5 Uncaught SyntaxError: Unexpected token ! 

私はCSSファイルをHTMLファイルとして解釈されていることと思いますか? javacriptファイルが正しく読み込まれていないと思います...

クロムのソースファイルをチェックして、cssファイルへのリンクをクリックしたときに機能しません。だから私は、CSSファイルへのリンクが動作しないと推測している?

リンクやスクリプト、CSSをロードするとJavaScriptファイルは、次のとおりです。次のように私のsettings.pyファイルに

<head> 
<!-- Latest compiled and minified CSS --> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
<link rel="stylesheet" href="{% static 'league/css/bootstrap-theme.css' %}"> 
<link rel="stylesheet" href="{% static 'league/css/bootstrap-theme.min.css' %}"> 
<link rel="stylesheet" href="{% static 'league/css/bootstrap.css' %}"> 

<!-- Optional theme --> 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" integrity="sha384-fLW2N01lMqjakBkx3l/M9EahuwpSfeNvV63J5ezn3uZzapT0u7EYsXMjQV+0En5r" crossorigin="anonymous"> 

<!-- Latest compiled and minified JavaScript --> 

<script type="text/javascript" src="{% static 'league/js/bootstrap.min.js' %}"></script> 
<script type="text/javascript" src="{% static 'league/js/npm.js' %}"></script> 
<!-- jQuery library --> 

<script type="text/javascript" src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script> 
<link rel="stylesheet" href="{% static 'league/css/f-style.css' %}"> 
</head> 

私の関連ファイルは、次のとおりです。

STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder', 
'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
# 'django.contrib.staticfiles.finders.DefaultStorageFinder', 
) 

STATIC_URL = '/league/static/' 
SITE_ID = 1 
STATIC_ROOT = BASE_DIR + '/league/static/' 

私の上の設定ファイルApacheサーバーは次のとおりです。

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot /var/www/html 
    Alias /static /home/ubunu/project/league/static 
    <Directory /home/ubuntu/project/league/static> 
      Require all granted 
    </Directory> 
    <Directory /home/ubuntu/project/fantasy> 
      <Files wsgi.py> 
        Require all granted 
      </Files> 
    </Directory> 

    WSGIDaemonProcess project python-path=/home/ubuntu/project:/home/ubuntu/project/myprojectenv/lib/python2.7/$ 
    WSGIProcessGroup project 
    WSGIScriptAlias//home/ubuntu/project/fantasy/wsgi.py 

</VirtualHost> 

ありがとうございます!

+0

サーバーにサーバーを再起動してみました。またテンプレートで{%load staticfiles%}タグを使用していません。 –

答えて

3

これはかなり簡単な質問です。あなたがする必要がある2つのことがあります。

あなたはローカルのpythonジャンゴ開発サーバーを使用している際にまず、その後、あなたの静的ファイルはappフォルダにstaticfilesを検索するだけで提供されており、あなたはSTATIC_DIRSであなたの静的ファイルのための別のフォルダを指定した場合、それもそれを調べます。

しかし、あなたはあなたのケースでnginxのまたはHerkouまたはApacheののように、いくつかの他のサーバー上のファイルを提供している場合、あなたはどこにApacheから別のディレクトリにあるすべての静的ファイルを収集する必要があります静的ファイルを読み込みます。あなたはできるだけ早くあなたがこれを行うようpython manage.py collectstatic

を行う必要がある上に、すべての静的ファイルがあなたのsettings.py

STATIC_ROOT値で指定したフォルダに収集することができるでしょうを達成するため

次に、あなたのSTATIC_ROOTとあなたのSTATIC_URL = '/league/static/'が技術的にうまくいけば、その2つが異なる目的のために機能しません。

私は、BASEのディレクトリレベルで新しいフォルダを作成し、提案するstatic_root_contentを言うと、あなたが実行されますとき今python manage.py collectstaticすべての静的データがどこにApacheからこのフォルダに収集することができるでしょうあなたのSTATIC_ROOT = os.path.join(BASE_DIR, 'static_root_content')

を変更静的ファイルを検索します。

またSTATIC_DIRSとSTATIC_ROOTがあなたのsettings.pyに同じ値を持つことはできません

より良い説明のために、この記事を参照してください - >Differences between STATICFILES_DIR, STATIC_ROOT and MEDIA_ROOT

+0

GET http://...../static/league/js/index.js 403(禁止)エラーが表示されます。私がURLにアクセスすると、次のエラーページが表示されます: '禁止されました このサーバで/static/league/js/prefixfree.min.jsにアクセスする権限がありません。 – alienboy

+0

これを参照してください - > http: /stackoverflow.com/questions/10873295/error-message-forbidden-you-dont-have-permission-to-access-on-this-server –

関連する問題