Django - 静态文件夹不在基础项目中

时间:2014-08-31 14:41:24

标签: python django django-staticfiles

我在移动我的静电时遇到了一些麻烦。文件夹出了基地' django_project'项目。根据我的经验,Django一直在寻找静态的'基础项目里面的文件夹,但它对我来说似乎很难看,我想将它移到我所有其他Django应用程序的旁边。

这是我当前的文件目录设置。

/home/django/django_project/
    /django_project/
    /myapplication/
    /templates/
    /static/

现在,'模板'文件夹工作正常,我可以毫无困难地找到我的所有模板文件。但是,我找不到任何静态文件,静态设置总是让我烦恼。

以下是' django_project'的我的settings.py文件基础项目。

...

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.6/howto/static-files/

STATIC_URL = '/static/'

# Go back one directory from this file and move into the 'static' folder
STATICFILES_DIRS = (
    os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..', 'static')),
)

# Template files (HTML)

TEMPLATE_DIRS = (
    '/home/django/django_project/templates/',
)

任何人都可以写出STATIC_URL或STATICFILES_DIR,以便它指向我的' / home / django / django_project / static /'夹?提前谢谢。

4 个答案:

答案 0 :(得分:1)

尝试这样的东西,它更干净。

STATIC_PATH = os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..', 'static'))

STATIC_URL = '/static/' # You may find this is already defined as such.

STATICFILES_DIRS = (
STATIC_PATH,
)

STATICFILE_DIRS - 指定本地磁盘上静态目录的位置

STATIC_URL - 指定从Web服务器访问静态媒体的URL。

假设您的静态目录中有dragontoothless.jpg文件。要从您的html页面提供服务,您可以使用类似的内容。

<img src="/static/dragontoothless.jpg" />

希望这有帮助!

答案 1 :(得分:0)

注意:

os.path.abspath(filename)返回从当前工作目录中看到的绝对路径。它不会检查文件是否确实存在。

os.path.dirname将查找目录返回路径名路径的目录名。要获取绝对路径的目录名,请使用os.path.dirname(os.path.dirname(__file__))

  

BASE_DIR = os.path.dirname(os.path.dirname( file ))

静态网址是

STATIC_URL = '/static/'
  

STATICFILES_DIRS = [       os.path.join(BASE_DIR,&#34; static&#34;),   ]

答案 2 :(得分:0)

通过将静态文件放在另一个文件夹中并创建staticfiles目录来解决这个问题:STATICFILES_DIRS = [os.path.join(BASE_DIR,'static / another folder'),]

答案 3 :(得分:-3)

在settings.py中尝试此操作

STATIC_ROOT =&#39; / path / to / static / folder&#39;

只需将右侧更改为静态文件夹的绝对路径。