I've followed django-pipeline docs and I am having an issue when collecting static, the console shows that the specified file is not found.
collectstatic works without djanog-pipeline. I also tried to add static file at the same level as manage.py
didn't make any difference...
Here's how my app tree is configured :
Globalapp : (root folder)
- src (the base that contains all my django files)
-- staticfiles (folder here after collectstatic)
-- manage.py (file)
-- app (folder, where settings.py is)
...
-- pages (folder, where static files are)
--- static
- css
-- main.css
...
And here's how I configured my settings.py :
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
INSTALLED_APPS = [
...
'pipeline',
]
...
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
#tried : STATIC_ROOT = os.path.join(BASE_DIR, 'pages')
STATICFILES_STORAGE = 'pipeline.storage.PipelineCachedStorage'
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'pipeline.finders.PipelineFinder',
)
PIPELINE = {
'COMPILERS': (
'pipeline.compilers.stylus.StylusCompiler',
),
'STYLESHEETS': {
'pages': {
'source_filenames': (
'css/main.css',
),
'output_filename': 'designer.css',
},
},
}
I am working in localhost for now, the error occures when I run python manage.py collectstatic
, have I done something wrong ?
Here's the Traceback :
Traceback (most recent call last):
File "manage.py", line 22, in <module>
execute_from_command_line(sys.argv)
File "C:\Python34\lib\site-packages\django\core\management\__init__.py", line 363, in execute_from_command_line
utility.execute()
File "C:\Python34\lib\site-packages\django\core\management\__init__.py", line 355, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Python34\lib\site-packages\django\core\management\base.py", line 283, in run_from_argv
self.execute(*args, **cmd_options)
File "C:\Python34\lib\site-packages\django\core\management\base.py", line 330, in execute
output = self.handle(*args, **options)
File "C:\Python34\lib\site-packages\django\contrib\staticfiles\management\commands\collectstatic.py", line 199, in handle
collected = self.collect()
File "C:\Python34\lib\site-packages\django\contrib\staticfiles\management\commands\collectstatic.py", line 139, in collect
for original_path, processed_path, processed in processor:
File "C:\Python34\lib\site-packages\pipeline\storage.py", line 26, in post_process
packager.pack_stylesheets(package)
File "C:\Python34\lib\site-packages\pipeline\packager.py", line 100, in pack_stylesheets
variant=package.variant, **kwargs)
File "C:\Python34\lib\site-packages\pipeline\packager.py", line 118, in pack
content = compress(paths, **kwargs)
File "C:\Python34\lib\site-packages\pipeline\compressors\__init__.py", line 78, in compress_css
css = getattr(compressor(verbose=self.verbose), 'compress_css')(css)
File "C:\Python34\lib\site-packages\pipeline\compressors\yuglify.py", line 20, in compress_css
return self.compress_common(css, 'css', settings.YUGLIFY_CSS_ARGUMENTS)
File "C:\Python34\lib\site-packages\pipeline\compressors\yuglify.py", line 14, in compress_common
return self.execute_command(command, content)
File "C:\Python34\lib\site-packages\pipeline\compressors\__init__.py", line 247, in execute_command
stdin=subprocess.PIPE, stderr=subprocess.PIPE)
File "C:\Python34\lib\subprocess.py", line 859, in __init__
restore_signals, start_new_session)
File "C:\Python34\lib\subprocess.py", line 1114, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] The specified path to the file was not found.
I ended up using django-compressor and django-sass-processor. Which works like django-pipeline, I couldn't find the reason of this specific issue, but everything worked out with these other packages that does nearly the same thing as pipeline when combined.
If you have trouble installing django-compressor wiith pip try with these commands :
pip install rcssmin --install-option="--without-c-extensions"
pip install rjsmin --install-option="--without-c-extensions"
pip install django-compressor --upgrade