MEDIA_ROOT = '/files/dev/projects/mynewproject/media'
の場合0
とURLが
http://localhost:8000/media/adminextra/js/jquery.js
では、ファイルへのローカルパスでなければなりません:
/files/dev/projects/mynewproject/media/adminextra/js/jquery.js
あなたが(コメントで)say whereasファイルが配置されていることで:
/files/dev/projects/mynewproject/project/concerthall/media/adminextra/js
もちろん、それは見つかりません。
これは、collectstatic
とSTATICファイルのファインダの仕組みを間に置いているため、STATICパスとURLの動作が異なります。その場所に属しているため、STATICのルートにリソースを配置することをお勧めします。メディアはこれを意味するものではありません。
また、ベストプラクティスでは、ハードコードされた絶対ファイルパスを使用しないでください。これは共有プロジェクトでは機能しません。 <git_root>/mynewproject/settings/base.py
で
例のセットアップ:あなたのWebリソース(JS/CSS/IMG)<git_root>/mynewproject/static
と下のアプリディレクトリの下にあると<git_root>/static_collected
へcollectstatic
によって出力されていると
BASE_APP_DIR = os.path.dirname(os.path.realpath(project_module.__file__))
PROJECT_DIR = os.path.dirname(BASE_APP_DIR)
# Static files (CSS, JavaScript, Images)
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(PROJECT_DIR, 'static_collected')
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(PROJECT_DIR, 'media')
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'compressor.finders.CompressorFinder',
)
STATICFILES_DIRS = (
os.path.join(BASE_APP_DIR, 'static'),
)
。本番環境では、NGINXまたはApacheがそのディレクトリにファイルを配信します。それを使用するあなたの管理者クラスで
mynewproject/project/concerthall/static/adminextra/js/jquery.js
(私はそれを取る、concerthall
はmodels.py
ファイルとアプリです。)
:へ
置き、あなたのファイルを
class Media:
js = ("adminextra/js/jquery.js",)
ですjqueryはSTATIC_ROOTではなくMEDIA_ROOTの下に置かれるべきですか? MEDIAはユーザーがアップロードしたリソースを対象としていますが、STATICはJS/CSSなどのアプリケーションリソース用です。 – Risadinha
「adminextra」フォルダは管理パネルで使用するファイルのためのものです –
どこにあるのですか? jquery.js'はあなたのディスクにありますか? 'settings.DEBUG'の値は何ですか? – Alasdair