Pregunta

Me encanta Django, pero obtener archivos estáticos en desarrollo es extremadamente complicado.He instalado webassets para facilitar el trabajo.Básicamente, mis activos funcionan con 404 con mi configuración actual, pero los activos de administración están bien (?!).El diseño de mi proyecto es así;

myapp/
    common/
        static/
            bootstrap/
                img/
                less/
                js/
        templates/
        __init__.py
        assets.py
        urls.py
        models.py
        views.py
    projects/
        templates/
        static/
        __init__.py
        assets.py
        urls.py
        models.py
        views.py
    public/ <- (static files collected here)
settings.py

En mis ajustes tengo configurados los siguientes valores

__DIR__ = os.path.abspath(os.path.dirname(__file__))
MEDIA_ROOT = os.path.join(__DIR__, 'media')
MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join(__DIR__, 'public')
STATIC_URL = '/static/'

Mis URL están configuradas así;

urlpatterns = patterns('',
    url(r'^projects/', include('myapp.projects.urls')),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^$', include('myapp.common.urls')),
)

urlpatterns += staticfiles_urlpatterns()

Nuevamente, activos.py parece bastante estándar;

from django_assets import register, Bundle

js = Bundle(
    'bootstrap/js/bootstrap-alert.js',
    'bootstrap/js/bootstrap-button.js',
    'bootstrap/js/bootstrap-carousel.js',
    'bootstrap/js/bootstrap-collapse.js',
    'bootstrap/js/bootstrap-modal.js',
    'bootstrap/js/bootstrap-popover.js',
    'bootstrap/js/bootstrap-scrollspy.js',
    'bootstrap/js/bootstrap-tab.js',
    'bootstrap/js/bootstrap-tooltip.js',
    'bootstrap/js/bootstrap-transition.js',
    'bootstrap/js/bootstrap-typeahead.js',
    output='bootstrap/script.js',
    debug=False
)

register('js', js)

Y mi plantilla base es muy básica;

{% load assets %}
{% assets 'js' %}
    <script type="text/javascript" src="{{ ASSET_URL }}"></script>
{% endassets %}

Entonces, cuando se ejecuta RunServer, todos los archivos js se agrupan en 1 etiqueta con la siguiente URL http://localhost:8000/static/bootstrap/script.js?ed501ad2.Pero este 404 con el mensaje "'bootstrap/script.js' no se pudo encontrar".

Sin embargo, si inicio sesión en la aplicación /admin, todos los recursos CSS se representan correctamente.Ejecuté Collectstatic y verifiqué que los activos realmente se encuentran dentro public/ directorio.

¿Que me estoy perdiendo aqui?

¿Fue útil?

Solución

Agregaste django_assets.finders.AssetsFinder para usted STATICFILES_FINDERS como se requiere en el documento de django-assets?

http://elsdoerfer.name/docs/webassets/django/index.html

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top