django-pipeline throwing ValueError: the file could not be found
<p>When running <code>python manage.py collectstatic --noinput</code> I'm getting the following error:</p>

<pre><code>Post-processing 'jquery-ui-dist/jquery-ui.css' failed!
Traceback (most recent call last):
File "manage_local.py", line 10, in &lt;module&gt;
execute_from_command_line(sys.argv)
File "/Users/michaelbates/GoogleDrive/Development/inl/venv/lib/python3.4/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line
utility.execute()
File "/Users/michaelbates/GoogleDrive/Development/inl/venv/lib/python3.4/site-packages/django/core/management/__init__.py", line 359, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Users/michaelbates/GoogleDrive/Development/inl/venv/lib/python3.4/site-packages/django/core/management/base.py", line 294, in run_from_argv
self.execute(*args, **cmd_options)
File "/Users/michaelbates/GoogleDrive/Development/inl/venv/lib/python3.4/site-packages/django/core/management/base.py", line 345, in execute
output = self.handle(*args, **options)
File "/Users/michaelbates/GoogleDrive/Development/inl/venv/lib/python3.4/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 193, in handle
collected = self.collect()
File "/Users/michaelbates/GoogleDrive/Development/inl/venv/lib/python3.4/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 145, in collect
raise processed
File "/Users/michaelbates/GoogleDrive/Development/inl/venv/lib/python3.4/site-packages/django/contrib/staticfiles/storage.py", line 257, in post_process
content = pattern.sub(converter, content)
File "/Users/michaelbates/GoogleDrive/Development/inl/venv/lib/python3.4/site-packages/django/contrib/staticfiles/storage.py", line 187, in converter
hashed_url = self.url(unquote(target_name), force=True)
File "/Users/michaelbates/GoogleDrive/Development/inl/venv/lib/python3.4/site-packages/django/contrib/staticfiles/storage.py", line 132, in url
hashed_name = self.stored_name(clean_name)
File "/Users/michaelbates/GoogleDrive/Development/inl/venv/lib/python3.4/site-packages/django/contrib/staticfiles/storage.py", line 292, in stored_name
cache_name = self.clean_name(self.hashed_name(name))
File "/Users/michaelbates/GoogleDrive/Development/inl/venv/lib/python3.4/site-packages/django/contrib/staticfiles/storage.py", line 95, in hashed_name
(clean_name, self))
ValueError: The file 'jquery-ui-dist/"images/ui-icons_555555_256x240.png"' could not be found with &lt;pipeline.storage.PipelineCachedStorage object at 0x1073e2c50&gt;.
</code></pre>

<p>If I run <code>python manage.py findstatic jquery-ui-dist/"images/ui-icons_555555_256x240.png"</code> I get:</p>

<pre><code>Found 'jquery-ui-dist/images/ui-icons_555555_256x240.png' here:
      /Users/michaelbates/GoogleDrive/Development/inl/node_modules/jquery-ui-dist/images/ui-icons_555555_256x240.png
      /Users/michaelbates/GoogleDrive/Development/inl/staticfiles/jquery-ui-dist/images/ui-icons_555555_256x240.png
</code></pre>

<p>Here are some relevant settings:</p>

<pre><code>STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'pipeline.finders.AppDirectoriesFinder',
    'pipeline.finders.PipelineFinder',
)

STATICFILES_STORAGE = 'pipeline.storage.PipelineCachedStorage'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
    os.path.join(BASE_DIR, 'node_modules'),
)
</code></pre>

<p>My <code>PIPELINE</code> settings dict is huge so I won't post the entire thing, but some parts of it are:</p>

<pre><code>PIPELINE = {
    'STYLESHEETS': {
        'pricing': {
            'source_filenames': (
                'jquery-ui-dist/jquery-ui.min.css',
            ),
            'output_filename': 'css/pricing.min.css'
        },
    }
    'JS_COMPRESSOR': 'pipeline.compressors.yuglify.YuglifyCompressor',
    'CSS_COMPRESSOR': 'pipeline.compressors.yuglify.YuglifyCompressor',
    'COMPILERS': (
        'pipeline.compilers.sass.SASSCompiler',
    )
}
</code></pre>

<p>I've tried changing the STATICFILES_FINDERS to the django-pipeline specific ones but it makes no difference.</p>

<p>Can anyone shed some light on why that png file can't be found during collectstatic but can with findstatic?</p>

<p>Your problem is related to <a href="https://code.djangoproject.com/ticket/21080" rel="nofollow">this bug</a> on the Django project.</p>

<p>In short, django-pipeline is post-processing the <code>url()</code> calls with Django's <code>CachedStaticFilesStorage</code> to append the md5 checksum to the filename (<a href="https://docs.djangoproject.com/en/1.10/ref/contrib/staticfiles/#manifeststaticfilesstorage" rel="nofollow">more details here</a>) and doesn't detect when it is inside a comment.</p>

<p>If you look on the header of the <code>jquery-ui.css</code> (and similar) files there is a comment that starts with </p>

<blockquote>
  <ul>
  <li>To view and modify this theme, visit [...]</li>
  </ul>
</blockquote>

<p>Inside the URL on this line there is a parameter that is being interpreted as an <code>url()</code> call and generating the error you see.</p>

<p>To work around this issue you can simply remove the above line from <code>jquery-ui.css</code> and <code>collectstatic</code> should work properly.</p>

python django asset-pipeline django-pipeline