[英]Permission denied on running collectstatic with django-pipeline on Heroku
[英]Django-pipeline is not been able to access a file. Access Denied Error
我正在使用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
去掉
STATIC_PATH +
來自source_filenames
和output_filename
我懷疑你添加的原因是由於./manage.py collectstatic
在js/app
目錄中沒有產生輸出(這就是導致我混淆的原因)。 要在settings.py設置中修復此問題
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
這可能發生的另一個原因是如果你在source_filenames
元組中缺少一個帶有一個文件名的逗號,這使它成為一個字符串:
缺少逗號, ('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',
},
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.