0

我的模板不起作用,无法获取静态文件,但我做了一切。我的静态文件夹位于 Base 目录中,但是当我尝试访问静态文件(例如 CSS 或 js)时,我收到文件未找到错误并且模板已损坏。我的项目文件树

这是我的文件夹和项目树的图像

静态和媒体设置。

STATIC_URL = '/temfiles/'
MEDIA_URL = '/mediafiles/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
MEDIA_ROOT = os.path.join(BASE_DIR, 'static/uploads/')
X_FRAME_OPTIONS = 'SAMEORIGIN'

我的项目 URL 文件

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('blog.urls')),
    path('froala_editor/', include('froala_editor.urls'))

]
if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL,
                      document_root=settings.MEDIA_ROOT)

我的应用程序 URL 文件

urlpatterns = [
    path('', views.index, name = 'index'),
    path('<slug:slug>/', views.post_detail, name='Post Detail')
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

我的视图文件

def index(request):
    Post_list = BlogPost.objects.all()
    template_name = 'front/index.html'
    return render(request, template_name,{"Post_list":Post_list})



def post_detail(request):
    return render(request, 'front/post_detail.html')

我的基本模板 CSS 示例

   {% load static %}
  <link rel="stylesheet" type="text/css" href="{% static 
  'front/css/style.css' %}">

静态目录树图像

带有打开文件夹的静态目录树

浏览器检查终端图片

在浏览器中设置样式 CSS URL

MY urls.py 用于静态和媒体根目录

4

2 回答 2

0

这不起作用,因为当 Django 使用 DEBUG 时,他正在将静态文件查找到应用程序文件夹中,因此在关闭调试后,它将从写入静态文件路径的 Base 目录中获取所有内容。所以在调试中,你应该在 app 文件夹中收集静态,之后,你必须使用命令收集静态,Django 终端会在上传到全局之前修复这个问题

于 2020-03-09T12:49:18.217 回答
0

您需要为静态和媒体添加调试时 url 模式:

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

https://docs.djangoproject.com/en/3.0/howto/static-files/#serving-static-files-during-development

于 2020-03-08T18:25:17.703 回答