[英]Missing bootstrap resources in Django-Rest-Framework
我正在使用新的django-rest-framework 2.0并且一直在关注创建基于休息的API的教程。 API现在已经完成,但是我无法加载引导资源,所有返回都是从Django找不到404。
我觉得应该从django-rest-framework模块的静态目录加载资源,当我在'python2.7 / dist-packages / rest_framework / static / rest_framework'上进行列表时,我看到了css,js和img目录我需要但我无法在文档中找到任何显示如何将CSS从模块链接到我的项目的地方。
这里最好的行动是什么? 我应该下载源并将文件夹复制到我的/ static目录中吗? Symlinking是不可能的,因为我需要检查项目到一个中央回购..想法?
首先,我假设你的意思是引导静态资源没有为可浏览的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开始的任何版本),并确保逐步完成教程步骤-step,特别注意项目设置。
如果您正在使用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文件。
如果你有一个单独的前端和后端(restful)设置,如Django-Django休息框架和AngularJS,这个解决方案是完美的。
让我们说如果django后端运行在8000,前端运行在9000。
frontend.example.com加载运行在9000的前端JS应用程序
backend.example.com加载运行在8000的django app
在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
然后转到dir,你有文件夹static
$ cp -rf static/* /frontend-code-directory/static/
DONE。
基本上我做的是将所有django应用程序的CSS复制到前端。 前端服务很简单,因为前端已经是静态文件的集合。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.