Dav*_*ann 55
设定完成后你STATIC_ROOT和STATIC_URL,你可能需要运行
python manage.py collectstatic
Run Code Online (Sandbox Code Playgroud)
小智 17
ADMIN_MEDIA_PREFIX现在已弃用,请STATIC_URL改用.设置STATIC_URL = '/static/'在settings.py应该做的工作.尝试:
import os.path import sys
PROJECT_ROOT = os.path.normpath(os.path.dirname(__file__))
Run Code Online (Sandbox Code Playgroud)
然后:
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static')
STATIC_URL = '/static/'
Run Code Online (Sandbox Code Playgroud)
适用于Django 1.4 pre-alpha SVN-16920.
Eva*_*ter 13
Django不会自己提供静态文件.你必须告诉它文件的位置.
将在settings.py ADMIN_MEDIA_PREFIX将在正确的位置指向Django的.
由于您使用的是开发版本,因此您需要特定于开发人员的文档以获取静态文件的操作方法.Adam的链接将引导您进入1.2版本.
我在Django Book Tutorial之后也遇到了这个问题.在第5章|安装模型中,本书在引用默认INSTALLED_APPS时说明 - "通过在它们前面放置一个哈希字符(#)暂时注释掉所有六个字符串." http://www.djangobook.com/en/2.0/chapter05.html
然后,在第6章中,本书告诉读者取消注释这6行中的4行 - "请注意,我们在第5章中注释掉了这四个INSTALLED_APPS条目.现在取消注释它们."
但是statcifiles行是将CSS恢复到管理页面所需的,因此取消注释'django.contrib.staticfiles',
我读了几个试图解决这个问题的其他线程......在其他线程中使用别名.这假设您自己的自定义应用正确提供静态文件,这表明您的STATIC_ROOT和STATIC_URL具有正确的设置.
STATIC_ROOT = ''
STATIC_URL = '/static/'
Run Code Online (Sandbox Code Playgroud)
然后(从您的静态目录):
ubuntu@ip-1-2-3-4:/srv/www/mysite.com/app_folder/static$ sudo ln -s /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/ admin
Run Code Online (Sandbox Code Playgroud)
希望这有助于某人...这个主题有很多主题.:(
我看到有很多答案,但没有一个适合我,所以我发布了我自己的答案。对我来说解决这个问题的方法是将静态文件 URL 添加到应用程序的根 URL 中。我需要将此 URL 添加到我的 URL 列表中:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
Run Code Online (Sandbox Code Playgroud)
您还需要这两个导入:
from django.conf import settings
from django.conf.urls.static import stati
Run Code Online (Sandbox Code Playgroud)
更多内容可以查看这篇文章。
您需要/project_name/project_name/settings.py设置STATIC_URL告诉您的网站静态文件使用什么 url。
然后设置STATIC_ROOT为文件系统上的某个文件夹,该文件夹与列表中列出的任何目录都不相同STATICFILES_DIRS。
STATICFILES_ROOT设置后,您将从python manage.py collectstatic项目目录运行。
这将复制所有管理静态文件以及列表中列出的任何其他文件夹中的所有文件STATICFILES_DIRS。基本上,这会将所有静态文件放在一处,以便您在部署站点时可以将它们移动到 CDN。如果您像我一样没有 CDN,那么您有两种选择:
STATIC_ROOT到列表中STATICFILES_DIRS。这将允许 django 中的静态文件查找器找到所有静态文件。STATICFILES_DIRS包含该新位置。我对这个答案的安全性没有发表任何评论,这只是我能够使用我的网络服务器进行小型项目开发的方式。我预计如果你要做更大规模的事情,你会需要一个 CDN,就像 django 建议的那样。
更新:我刚刚遇到这个问题,这个方法并没有完全达到我认为你想要的效果。最终对我有用的是,在我运行之后,collectstatic我只是将其放入的管理静态文件复制STATICFILES_ROOT到我用于自己的静态文件的目录中。这为我解决了这个问题。
| 归档时间: |
|
| 查看次数: |
52363 次 |
| 最近记录: |