zoukankan      html  css  js  c++  java
  • Django本地调试时模拟服务器使用url方式访问静态文件(不建议使用)

    本地调试时模拟服务器使用url方式访问静态文件(不建议使用)

    当我们在开发django应用时如果设置了 DEBUG = True,那么django便会自动帮我们对静态文件进行路由;
    但是当我们设置DEBUG = False后,这一功能便没有了,此时静态文件就会出现加载失败的情况,想要让静态文件正常显示,我们就需要配置静态文件服务了。
    参考官方文档

    1. 首先修改App setting.py文件

    STATIC_ROOT = os.path.join(BASE_DIR, 'collected_static')
    STATIC_URL = '/static/'
    STATICFILES_DIRS = (
        os.path.join(BASE_DIR, '/static/'), ## 一定要修改这里!!!但部署到服务器要改回去不然collectstatic会报错
    ) 
    

    2. 修改urls.py

    from django.contrib import admin
    from django.urls import path,include
    from django.conf import settings ##新增2
    from django.conf.urls.static import static ##新增2
    from love import views
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('app1/', include('app1.urls')),
        path('video/', include('video.urls')),
        path('love/', views.love),
    ]+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    

    开发时提供静态文件服务

    官方文档

    若你使用了前文所述的 django.contrib.staticfiles, runserver 会在 DEBUG 为 True 时自动处理。若你未在 INSTALLED_APPS 中包含 django.contrib.staticfiles,你仍能手动通过 django.views.static.serve() 为静态文件提供服务。

    这不适合生产环境!常见的部署策略请参考 部署静态文件。

    例如,若 STATIC_URL 为 /static/,你能通过添加以下代码片段至 urls.py 完成目的:

    from django.conf import settings
    from django.conf.urls.static import static
    
    urlpatterns = [
        # ... the rest of your URLconf goes here ...
    ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    

    注解:
    该助手函数只能在 debug 模式下生效,且要求前缀是本地的(例如 /static/),不是一个 URL (例如 http://static.example.com/)。

    当然,助手函数只为实际的 STATIC_ROOT 目录提供服务;它不会像 django.contrib.staticfiles 一样搜索静态文件。

  • 相关阅读:
    PHP实现对站点内容外部链接的过滤方法
    PHP常用技术文之文件操作和目录操作总结
    PHP实现手机号码中间四位用星号(*)隐藏的自定义函数分享
    PHP如何快速读取大文件
    php使用json_encode后出现中文乱码的解决方法
    redis在PHP中的基本使用
    等差数列的概念和性质
    构造数列中的常见变形总结
    用几何画板制作函数图像的动态伸缩效果
    用几何画板制作函数图像的动态平移效果
  • 原文地址:https://www.cnblogs.com/JeromeLong/p/13234902.html
Copyright © 2011-2022 走看看