19

MyApp/static/MyAppディレクトリがあります。

を実行する./manage.py collectstaticと、MyAppディレクトリがにコピーされると思いますSTATIC_ROOTが、そうではありません。

私も持っDownloadedApp/static/DownloadedAppていて、それをにコピーしましたSTATIC_ROOT fine

私は何が欠けていますか?

4

8 に答える 8

29

STATIC_ROOT、、、STATICFILES_FINDERSは何STATICFILES_DIRSですかsettings.py

collectstatic実行されると、デフォルトSTATICFILES_FINDERS値は、にあるdjango.contrib.staticfiles.finders.FileSystemFinderすべてのパスから静的ファイルを収集しますSTATICFILES_DIRS

もう1つのデフォルトSTATICFILES_FINDERS値は、内の任意のアプリdjango.contrib.staticfiles.finders.AppDirectoriesFinderのフォルダーを検索します。/static/INSTALLED_APPS

見つかったすべての静的ファイルは、指定されたSTATIC_ROOTディレクトリに配置されます。

collectstaticドキュメントへのこのリンクをチェックしてください

そして、このリンクは、settings.pyのさまざまな静的設定の説明です

を使用python manage.py findstaticして、どのディレクトリcollectstaticが検索されるかを確認することもできます。

于 2013-01-23T04:35:40.220 に答える
4

それはちょうど私に起こりました、そして私は誤ってアプリの静的ファイルディレクトリを.gitignoreファイルに置きました。そのため、私のローカルマシンでは問題なく収集されましたが、本番環境では静的ファイルが実際に欠落していました(gitignored)。

于 2015-01-13T16:03:23.500 に答える
4

これを実行して、命名規則を同じにします

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

静的ディレクトリには、プロジェクトアセット以外のすべてが含まれます

このコマンドを実行すると、アセットディレクトリが自動的に作成されます

python3 manage.py collectstatic

これにより、すべての静的フォルダーのコンテンツがアセットフォルダーにコピーされます

お役に立てれば :)

于 2019-08-07T07:14:23.837 に答える
1

静的ファイルがコピーされるSTATIC_ROOTが欠落しているため、settings.pyにこの行を追加するだけです。

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

あなたのsettings.pyは次のようになります:

STATIC_URL = '/static/'
STATIC_ROOT=os.path.join(BASE_DIR,'staticfiles')

#manullyを追加

STATICFILES_DIRS = [
   os.path.join(BASE_DIR, "static")
    
]

urls.pyにSTAIC_ROOTパスを追加することを忘れないでください

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static




urlpatterns = [
    path('admin/', admin.site.urls),
    path("" ,include("home.urls")),
 
]+static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) 

それのすべての後、あなたは実行することができます:

python manage.py collectstatic

それはあなたのDirにあなたのためのstaticfilesフォルダを作成します

于 2021-06-02T00:05:47.457 に答える
0

これは、特定の日付に発生するバグを調査しているときに、コンピューターの日付と時刻を変更したために発生しました。

したがって、それはcollectstaticのようなもの、そしてまた私のブラウザの履歴を邪魔しました。

コンピュータの日付と時刻を変更しないでください。

于 2016-10-03T15:16:33.317 に答える
0

比較はコンテンツベースになるという印象を受けました。それは日付ベースであることが判明しました。したがって、。の後にファイルをいじらないでくださいcollecstatic

于 2018-05-07T22:55:44.283 に答える
0

簡単な回避策の1つは、これで修正されたり、発生した理由を説明したりすることはできませんが、次のことです。

  1. プロジェクトのファイルディレクトリに移動し、プロジェクトの「static」フォルダの名前を「static-old」などの名前に変更します。
  2. プロジェクトディレクトリに「static」という名前の新しい空のフォルダを作成します
  3. これを実行python manage.py collectstaticすると、静的フォルダーに何も存在しないことがわかり、すべての静的ファイルがコピーされます。
于 2019-02-01T20:48:09.430 に答える
0

静的にすべてを適切に設定し、を使用している場合はnginx、このコマンドを入力します

sudo nginx -t

error静的ファイルが提供されない理由を確認し、その特定のエラーを修正します

私の場合、私は私の中で間違った道を与えましたnginx config

location /static {
        root /home/ubuntu/myproject/app/static/;
    }
于 2021-01-18T20:03:33.353 に答える