无法添加Django-Assets / Webassets目录以查找assets.py文件

时间:2017-01-15 05:16:54

标签: python django

正在寻找Django的Python包来管理资产,使用Sass编译CSS,还有缓存破坏,建议使用Django-Assets / Webassets。使用我的目录结构无法安装它。

默认情况下,它会在每个已安装的应用中查找assets.py。我想对其进行设置,使其与settings.py位于同一目录中,并将每个应用目录中的应用特定资源编译为/static/js/static/css

我在django_assets中有INSTALLED_APPS。根据{{​​3}},我似乎需要将其添加到settings.py

ASSETS_MODULES = [
   'project_dir',
]

或者:

ASSETS_MODULES = [
   os.path.join(BASE_DIR, 'project_dir'),
]

或者:

ASSETS_MODULES = [
   PROJECT_ROOT
]

无论如何,它只会返回No asset bundles were found. If you are defining assets directly within your template, you want to use the --parse-templates option.

即使将assets.py移动到其中一个应用目录中,它也会查看BASE_DIR/scripts,这就是我保留manage.py的位置。同样,改变ASSETS_ROOT与做任何事都不一样。

~/portal-client

project_dir
    apps
        account
            templates
                account
                    login.html
            forms.py
            urls.py
            views.py
        home
            templates
                home
                    home.html
            urls.py
            views.py
        results
    assets.py
    settings.py
    urls.py
scripts
    manage.py
static
templates
    base.html
    footer.html
    title.html

1 个答案:

答案 0 :(得分:1)

对于ASSETS_MODULES,一些快速笔记,关键词是附加的:

  

django-assets将自动在每个应用程序中查找assets.py个文件,您可以在其中注册您的软件包。 如果要加载其他模块,可以定义此设置。它需要一个可导入模块列表:

即,如果我们在任何应用程序之外有ASSETS_MODULES个文件,我们只使用assets.py。在您的情况下,如果project_dir不是INSTALLED_APP,我们只会指定此内容。

其次,使用ASSETS_MODULES时,指定虚线模块路径,而不是目录。在您的情况下,仅当project_dir.assets不属于project_dir时才会INSTALLED_APPS