1

Djangoアプリのデプロイ中。静的ファイルに問題があります。静的ディレクトリにJSファイルとCSSファイルがあります。しかし、ブラウザはそれらのファイルを見つけることができません。サーバーOSと同じubuntuであるローカルマシン上に同じファイルと設定があり、ローカルで作業しています。同じ設定ですが、その静的ディレクトリとファイルの設定を以下に貼り付けています。

# Absolute filesystem path to the directory that will hold user-uploaded files.
# Example: "/home/media/media.lawrence.com/media/"
MEDIA_ROOT = ''

# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash.
# Examples: "http://media.lawrence.com/media/", "http://example.com/media/"
MEDIA_URL = ''

# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/home/media/media.lawrence.com/static/"
STATIC_ROOT = os.path.join(ROOT_PATH,'static')

# URL prefix for static files.
# Example: "http://media.lawrence.com/static/"
STATIC_URL = '/static/'


# Additional locations of static files
STATICFILES_DIRS =(
                os.path.join(ROOT_PATH,'static'),
)

# List of finder classes that know how to find static files in
# various locations.
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
#    'django.contrib.staticfiles.finders.DefaultStorageFinder',
)

ここで、上記のコードのルートパスは、その前に定義されています。

import os
#from django.contrib.sites.models import Site
ROOT_PATH = os.path.dirname(__file__)

私はapache2でmod_wsgiを使用しています。私の理解では、/ somefoldernameをロードしているときにファイルが見つかるはずです。その後、ブラウザーはそのディレクトリに移動するはずですが、問題のある場所を取得できませんでした。環境やwsgi設定などについて知るために、ここでフォローしているのは、wsgiファイルの詳細とその動作方法を投稿した質問です。サーバーに移行した後のDjangoサイトでの500サーバーエラー

サーバー上のsyncdbコマンドでも、アプリやその他のテンプレートやモジュールなどを見つける際に問題が発生することがよくあります。テンプレートの場合、ルートパスを追加すると、wsgiファイルにプロジェクトパスも追加されて動作し始めましたが、静的ファイルの問題は解決されていません。

4

3 に答える 3

2

「collectstatic」を実行すると、すべてのファイルがSTATIC_ROOTにコピーされますか? 最初にこれを確認して、ファイルが本来あるべき場所にあることを確認する必要があります。

STATIC_ROOTの静的ファイルを「/static/」として提供するようにapacheを構成しましたか?Djangoは本番環境(DEBUG = False)で静的ファイルを提供しないため、ファイルを提供するようにWebサーバーソフトウェアを構成する必要があります。

また、STATICFILES_DIRSにSTATIC_ROOTと同じパスを含める必要はないと思います。ファイルは、STATICFILES_DIRSのdirからSTATIC_ROOTにコピーれます。STATICFILES_DIRSには、「collectstatic」中に検索されないdirが含まれている必要があります。

于 2013-01-01T01:44:14.730 に答える
0

Djangoのドキュメントがこのトピックをカバーしています。見る:

于 2013-01-02T21:19:11.557 に答える
0

警告

これは、DEBUGがTrueの場合にのみ機能します。

これは、このビューが非常に非効率的で、おそらく安全でないためです。これはローカル開発のみを目的としており、本番環境で使用しないでください。

それでもローカルで静的サーバーを使用する必要がある場合(たとえば、デバッグなしでテストする場合)、開発サーバーを安全でないモードで実行できます。

python manage.py runserver --insecure

応援をお楽しみください:)

于 2020-02-17T21:03:53.613 に答える