【问题标题】:Django - separating shared & dedicated static files on dev machineDjango - 在开发机器上分离共享和专用静态文件
【发布时间】:2013-12-01 06:43:50
【问题描述】:

我已经阅读了https://docs.djangoproject.com/en/dev/howto/static-files/ 和 stackoverflow 上有关在 Django 上放置静态文件的相关问答。

每个项目应用程序都有自己专用的 js 和 css 文件。此外,还有所有应用程序通用的共享 js 和 css 文件(例如 jquery)。

 app1
   └── static
         └── app1
              ├── index.js
              ├── index.css
              ├── jQuery.1.10.2.js
              └── jquery-ui-1.10.3\...
 app2
   └── static
         └── app2
              ├── index.js
              ├── index.css
              ├── jQuery.1.10.2.js
              └── jquery-ui-1.10.3\...


问题(特定于开发环境):

  1. jquery 和 jquery-ui 文件应该放在哪里?上述设置会导致冗余。

  2. 我应该如何命名专用的 js & css 文件。我问这个是因为随着项目的发展,会有多个应用程序都有一个 index.js 文件。在编辑器中打开 10 个 index.js 文件会很混乱。我应该称它们为 app1_index.js 吗?

【问题讨论】:

    标签: django django-staticfiles django-dev-server


    【解决方案1】:

    我建议创建一个包含公共代码的“共享”应用程序(我通常将其命名为 commonbase)。

    app1/static
    app2/static
    common/static
    

    您的另一个选择是同时使用AppDirectoriesFinderSTATICFILES_DIR 下的FileSystemFinder。这是我对这种方法的设置(所有os.path 的东西只是使路径相对):

    STATICFILES_DIRS = (
        os.path.normpath(os.path.join(os.path.abspath(os.path.dirname(__file__)), '..', 'base')),
    ]
    
    STATICFILES_FINDERS = (
        'django.contrib.staticfiles.finders.FileSystemFinder',
        'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    ]
    

    关于命名以避免冲突。我建议在静态资产中使用目录来区分:

    app1/static/app1/index.js
    ap21/static/app2/index.js
    

    【讨论】:

    • 对于第二个 Q,我已经在使用目录名称来避免冲突。我的问题来自可用性方面。在编辑器中,如果我打开了多个 index.js 文件,则在切换文件时会变得混乱。
    • 是的,这可能会发生。但是,在这种情况下,为什么将它们都命名为index?这通常仅用于示例/教程。您应该能够为您的脚本/css 命名任何您想要的名称,并且以它们的角色命名会更有帮助,例如 app1/static/app1/app1.js
    猜你喜欢
    • 1970-01-01
    • 2013-12-14
    • 2012-02-29
    • 2019-05-15
    • 2014-03-13
    • 1970-01-01
    • 2012-06-04
    • 2011-10-29
    相关资源
    最近更新 更多