簡體   English   中英

缺少Django-Rest-Framework中的引導程序資源

[英]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_ROOTSTATIC_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM