Django静态网址自动前缀

时间:2016-02-25 17:05:05

标签: python django static redactor.js

我看过很多问题&关于这个主题的答案,但没有人帮助我。 因此,问题是:在我手动添加' /'之前,不会提供静态文件。在html的地址中的任何地址之前。 我总是在地址上获得双重静态文件文件夹前缀,如下所示:' content / static / content / static / js / my.js'

我无法克服的最后一个问题是,这个图像裁剪字段不起作用,我认为因为它无法获得正确的图像网址,因为上面写的双前缀。我无法解决它,因为机制写在https://github.com/jonasundderwolf/django-image-cropping内。有没有办法改变这个django行为?在redactor领域我有同样的问题,但我用手动覆盖save()方法修改它,更改上传图像的url,使它们开始显示,但它不会自动工作,我不明白为什么。 请帮助。

我试过{%static' some_file' %},有时它的工作,有时不工作,所以它不是解决方案。

所以,我的django项目结构是这样的:

  1. 项目
    • 内容
      • 模板
      • 静态
    • 项目
  2. 项目/ urls.py:

    from django.conf.urls import include, url
    from django.contrib import admin
    
    urlpatterns = [
        url(r'^admin/', include(admin.site.urls)),
        url(r'', include ('content.urls')),
        url(r'^redactor/', include('redactor.urls')),
    ]
    
    from django.conf.urls import patterns
    from django.contrib.staticfiles.urls import staticfiles_urlpatterns
    
    urlpatterns += staticfiles_urlpatterns()
    

    settings.py:

    INSTALLED_APPS = (
        'content',
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'redactor',
        'pure_pagination',
        'django_cleanup',
        'image_cropping',
        'easy_thumbnails',
    )
    
    from easy_thumbnails.conf import Settings as thumbnail_settings
    THUMBNAIL_PROCESSORS = (
        'image_cropping.thumbnail_processors.crop_corners',
    ) + thumbnail_settings.THUMBNAIL_PROCESSORS
    
    STATIC_ROOT = os.path.join(BASE_DIR, "static/")
    
    STATIC_URL = '/content/static/'
    
    STATICFILES_FINDERS = ( 
        'django.contrib.staticfiles.finders.FileSystemFinder',
        'django.contrib.staticfiles.finders.AppDirectoriesFinder',
        'django.contrib.staticfiles.finders.DefaultStorageFinder',
    )
    
    STATICFILES_DIRS = (
        # Put strings here, like "/home/html/static" or "C:/www/django/static".
        # Always use forward slashes, even on Windows.
        # Don't forget to use absolute paths, not relative paths.
        os.path.join(
            os.path.dirname(__file__),
        ),
        "C:/Work/Snejana/magazine31.01.2016/content/static/upload_images",
        "C:/Work/Snejana/magazine31.01.2016/content/static",
        "C:/Work/Snejana/magazine31.01.2016",
    )
    

    来自content / models.py的一个模型:

    class Author(models.Model):
    
        class Meta:
            verbose_name = 'Автора'
            verbose_name_plural = 'Авторы'
    
        author_name              = models.CharField(max_length=200, verbose_name=u'Имя автора')
        regalias                 = models.CharField(max_length=200, blank=True, verbose_name=u'Регалии')
        description              = RedactorField(blank=True,
                                                 verbose_name=u'Описание автора',
                                                 redactor_options={'lang': 'en', 'focus': 'true'},
                                                 upload_to='content/static/upload_images/',
                                                 allow_file_upload=True,
                                                 allow_image_upload=True)
        photo_full               = models.ImageField(upload_to="content/static/upload_images/",
                                                     verbose_name=u'Фото',
                                                     default=None,
                                                     blank=True,
                                                     null=True)
        photo_thumbnail          = models.ImageField(upload_to="content/static/upload_images/",
                                                     verbose_name=u'Фото маленькое',
                                                     default=None,
                                                     blank=True,
                                                     null=True)
        publications_of_author   = models.ForeignKey('Publication', blank=True, null=True, verbose_name=u'Публикации автора')
        cropping1 = ImageRatioField('photo_full', '600x400')
        cropping2 = ImageRatioField('photo_thumbnail', '100x80')
    

    最后一个,admin.py:

    class AuthorAdmin(ImageCroppingMixin, admin.ModelAdmin):
        fieldsets = [
            ('Информация об авторе', {'fields': ['author_name', 'description', 'photo_full', 'photo_thumbnail','cropping1', 'regalias'], 'classes': ['collapse']}),
        ]
        readonly_fields = ('photo_thumbnail',)
        inlines = [AuthorsPublicationsInline]
    
        class Media:
            js = ['http://code.jquery.com/jquery-latest.min.js', 'js/collapsed_stacked_inlines.js',]
    

1 个答案:

答案 0 :(得分:1)

您的stdsoap2.h属性不应包含前缀;它们与MEDIA_ROOT相关。

upload_to