【问题标题】:URL for Static files in Django ProjectDjango 项目中静态文件的 URL
【发布时间】:2014-11-23 22:34:03
【问题描述】:

我正在像 www.example.com/django 这样的子网址运行 Django 项目。一切正常,但我的静态文件无法在此子网址上运行,因为它们使用的 url 主要是 www.example.com/static/path_to_files 但它应该将 url 作为 www.example.com/django/static/path_to_files

其他网址也可能是这种情况,因为我认为每当我对任何链接使用任何网址时,它都必须采用带有子网址的主机名,例如 www.example.com/django 而不是 www.example.com

您还可以查看this 我的问题以获取有关服务器配置文件的更多信息。

【问题讨论】:

    标签: python django apache django-urls


    【解决方案1】:

    settings.py 试试:

    STATIC_URL = '/django/static/'
    

    更多信息在这里:https://docs.djangoproject.com/en/dev/howto/static-files/

    【讨论】:

    • 是的,它可以工作,但仅适用于静态文件。我需要所有类型的网址都一样。
    • 尝试在urlpatterns中的每个url的开头添加django
    【解决方案2】:

    您可以在开发过程中通过将行添加到 urls.py 来手动提供它们:

    urlpatterns = patterns('',
        # Media files
        url(r'^media/(?P<path>.*)$',
            'django.views.static.serve',
            {'document_root': settings.MEDIA_ROOT, 'show_indexes': True}
        ),
    
        # Static files
        url(r'^static/(?P<path>.*)$',
            'django.views.static.serve',
            {'document_root': settings.STATIC_ROOT, 'show_indexes': True}
        ),
    )
    

    不要在生产中使用它,阅读文档,它的解释很好。

    【讨论】:

      【解决方案3】:

      settings.py

      中定义 MEDIA_URL 和 STATIC_URL
      MEDIA_URL = /django/media
      STATIC_URL = /django/static
      

      然后在模板中定义 url 时添加这个变量:

      <a href="{{ MEDIA_URL }}/path_to_media_file/">media</a>
      <img src="{{ STATIC_URL }}/path_to_static_file" />
      

      现在您可以在任何您想创建 url 的地方使用这些变量。

      【讨论】:

        猜你喜欢
        • 2017-07-20
        • 2019-03-05
        • 2020-04-18
        • 1970-01-01
        • 2022-01-12
        • 2018-11-29
        • 2015-02-05
        • 1970-01-01
        • 2015-08-28
        相关资源
        最近更新 更多