3

アセットの縮小と圧縮に Django-pipeline を使用していますが、実行しようとするとエラーが発生するようです

./manage collectstatic

次のエラーが表示されます..

django.core.exceptions.SuspiciousFileOperation: Attempted access to '/home/darwesh/projects/first/api/static/js/app/check.js' denied.

これが私のsettings.pyファイルです

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.6/howto/static-files/

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'api/static'),
)

STATIC_ROOT = os.path.join(BASE_DIR, 'api/static_final/')

STATIC_URL = '/static/'

STATIC_PATH = os.path.join(BASE_DIR, 'api/static/')


# pipeline settings 
STATICFILES_STORAGE = 'pipeline.storage.PipelineCachedStorage'
PIPELINE_JS = {
    'check': {
        'source_filenames' : (
            STATIC_PATH + 'js/app/controllers.js',
        ),
        'output_filename': STATIC_PATH + 'js/app/check.js',
    },
}

ここに私のファイル構造があります

project 
|__api
   |__static
      |__js
         |__app
            |__ controllers.js
            |__ check.js  # expected output file
4

2 に答える 2

3

削除する

STATIC_PATH +

と両方source_filenamesからoutput_filename

あなたが追加した理由は、ディレクトリ./manage.py collectstaticに出力が生成されなかったためだと思われますjs/app(それが私の混乱の原因です)。これを settings.py set で修正するには

PIPELINE_ENABLED = True  # pipeline > 1.3
#PIPELINE = True  # pipeline < 1.3
STATIC_ROOT = os.path.join(BASE_DIR, 'project/static')  # this should also be set

走る

./manage.py collectstatic

生成されたものが表示されるはずですoutput_filename

于 2014-12-07T03:11:24.517 に答える
1

source_filenamesこれが発生するもう 1 つの理由は、ファイル名が 1 つのタプルにカンマがなく、文字列になっている場合です。

コンマが欠落している場合('js/app/controllers.js')は文字列であり、次をスローしSuspiciousFileOperationます:

PIPELINE_JS = {
    'check': {
        'source_filenames' : (
            'js/app/controllers.js'
        ),
        'output_filename': 'js/app/check.js',
    },
}

修理済み:

PIPELINE_JS = {
    'check': {
        'source_filenames' : (
            'js/app/controllers.js',
        ),
        'output_filename': 'js/app/check.js',
    },
}
于 2016-10-04T13:05:40.933 に答える