我使用的是新的Django的休息框架2.0 ,并已下创建一个基于REST API的教程。 该API现在已经完成,但我遇到麻烦引导资源加载,全部采用404回不从Django中找到。
我觉得像资源应该从Django的REST的框架模块的静态目录加载,而当我做“python2.7 / DIST-包/ rest_framework /静态/ rest_framework”我看到了CSS,JS和img目录的列表我需要,但我一直无法找到说明如何将CSS从模块到我的项目链接的文档中的任何地方。
什么是这里最好的行动过程? 我应该下载源和文件夹复制到我的/静态目录? 符号链接是不可能的,因为我需要检查的项目为中央回购..想法?
先上去,我假设你的意思是引导静态资源不加载的可浏览API? (虽然我想这可能是因为你想在你的项目中的其他地方使用它们?)
如果你正在与运行DEBUG=True
就应该自动送达,但一旦你与运行DEBUG=False
,你需要确保运行manage.py collectstatic
并确保您的STATIC_ROOT
和STATIC_URL
设置是否正确。
Django的静态文件文档应该有所帮助: https://docs.djangoproject.com/en/dev/howto/static-files/
如果你还没有任何运气我建议你仔细检查你的Django版本(1.3及以上支持)和REST框架版本(从任何版本2起),并确保你通过教程一步一步 - 工序,照顾特别是与项目设置。
如果您使用的Heroku你要确保你使用的是配置了入门文档中( https://devcenter.heroku.com/articles/getting-started-with-django )。 参看“settings.py”和“wsgi.py”。 我有同样的问题,这个解决它。
settings.py
import os
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = 'staticfiles'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
wsgi.py
from django.core.wsgi import get_wsgi_application
from dj_static import Cling
application = Cling(get_wsgi_application())
CSS是找不到的。 此修复程序是使丢失的CSS文件(404在浏览器控制台看到文件)可用。 而已。
您可以在CSS文件中的后台访问(需要一些调整),或在前端(比较容易)。
该解决方案可完美的,如果你有一个单独的前端和后端(宁静)设置,如Django的Django的REST框架和AngularJS ..
让我们说,如果Django的后台运行在8000和前端在9000上运行。
在settings.py
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
STATIC_URL = 'http://frontend.example.com/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
然后在终端
$ python manage.py collectstatic
然后进入目录,你有文件夹static
$ cp -rf static/* /frontend-code-directory/static/
DONE。
我所做的基本上是复制Django的应用程序的所有的CSS到前端。 作为前端已经是静态文件的集合前端提供这个方便。