【问题标题】:Loading MEDIA_ROOT files with Django Webpack Loader使用 Django Webpack Loader 加载 MEDIA_ROOT 文件
【发布时间】:2021-03-18 19:02:43
【问题描述】:

在我使用django webpack loader 设置vue 前端后,媒体文件不会呈现。

settings.py

STATIC_URL = '/static/'
MEDIA_URL = "/media/"

MEDIA_ROOT = os.path.join(BASE_DIR, "media")
STATICFILES_DIRS = (os.path.join(BASE_DIR, "static"),)


WEBPACK_LOADER = {
    "DEFAULT": {
        "BUNDLE_DIR_NAME": "dist/",
        "STATS_FILE": os.path.join(BASE_DIR, "frontend", "webpack-stats.json"),
    }
}

还有 urls.py

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/v1/', include("companies.routes.urls")),
    path('api/v2/', include("projects.routes.urls")),

    path('accounts/register/', RegistrationView.as_view(
        form_class=CompanyUserForm,
        success_url="/",
    ), name="django_registration_register"),

    path('accounts/', include("django_registration.backends.one_step.urls")),
    path('accounts/', include("django.contrib.auth.urls")),
    path('api-auth/', include("rest_framework.urls")),
    path('api/rest_auth/', include("rest_auth.urls")),
    path('api/rest_auth/django_registration/', include("rest_auth.registration.urls")),

    re_path(r'^.*$', IndexTemplateView.as_view(), name="entry-point")
]

urlpatterns += [
    re_path(r'^media/(?P<path>.*)$', serve, {
        'document_root': settings.MEDIA_ROOT
    }),
]

# adding the media root path.
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

但是当我浏览媒体文件 url 时,图像没有呈现。当我注释掉这部分时,问题在于re_path(r'^.*$', IndexTemplateView.as_view(), name="entry-point") 这一行的urlpatterns。我可以看到图像。但我需要re_path 来查看前端视图。应该如何解决这个问题?

【问题讨论】:

  • 你好,你必须添加我的答案和“ from django.views.static import serve”
  • django-webpack-loader 不再维护。我一直在研究它的替代品,它开始受到关注,我强烈建议尝试一下:github.com/shonin/django-manifest-loader

标签: django django-webpack-loader


【解决方案1】:

您需要提供媒体文件,请将其添加到您的 urls.py

from django.views.static import serve

urlpatterns += [
    re_path(r'^media/(?P<path>.*)$', serve, {
        'document_root': settings.MEDIA_ROOT
    }),
]

【讨论】:

  • 谢谢你的回答,我做了同样的事情,但仍然是同样的问题。图像 url 文本显示,但图像未呈现。因为 媒体路径 仍然没有查看后端的媒体文件。寻找前端的文件。同时更新有问题的urls.py 更改。
  • 好的,问题解决了。我在媒体re_path() 之后而不是之前给了前端的re_path()。谢谢!!
猜你喜欢
  • 2021-07-10
  • 1970-01-01
  • 2022-07-02
  • 2019-07-28
  • 1970-01-01
  • 1970-01-01
  • 2015-12-18
  • 2016-06-30
  • 2016-08-14
相关资源
最近更新 更多