我已经看过几个关于这个问题的帖子,但没有找到我的解决方案.
我正在尝试在Django 1.3开发环境中提供静态文件.
这是我的设置
...
STATIC_ROOT = '/home/glide/Documents/django/cbox/static/'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
'/static/',
)
...
Run Code Online (Sandbox Code Playgroud)
我的urls.py
urlpatterns = patterns('',
...
url(r'^static/(?P<path>.*)$', 'django.views.static.serve',
{'document_root', settings.STATIC_ROOT}
),
...
);
Run Code Online (Sandbox Code Playgroud)
我的/ home/glide/Documents/django/cbox/static /目录就像
css
main.css
javascript
image
Run Code Online (Sandbox Code Playgroud)
尝试访问http://127.0.0.1:8000/static/css/main.css时出现404错误.
我是否必须单独指定css,javascript和图像的模式?
我查看了很多相关的帖子,但似乎没有任何帮助.
相关信息:
Django版本 - 1.4
Apache版本 - 2.2
Python版本 - 2.7
操作系统 - Xubuntu 12.04
DB - Mysql
我正在尝试让Apache同时提供django app和静态文件.管理站点中的问题变得明显,无法显示任何CSS样式或图像.我的管理网站目前看起来像:
(好吧,我会包含一个图像,但堆栈溢出不让我.只需说它看起来像其他人发布在这个主题上的管理页面,请参阅Apache不提供django管理静态文件 )
像我的登录页面和一些动态内容这样的应用程序工作正常,但是当我尝试提供静态内容时,我收到403错误.另外,当我尝试通过查看管理页面的渲染html并单击指向样式表的链接时手动导航到样式表
http://localhost/static/admin/css/base.css
Run Code Online (Sandbox Code Playgroud)
我收到403错误.我可以在终端中导航,并更改了文件夹的权限,以便Apache的www-data用户显式访问所有文件.
以下是我的httpd.conf的相关部分:
#AliasMatch ^/([^/]*\.css) /usr/local/wsgi/static/styles/$1
Alias /media/ "/usr/local/wsgi/media/"
Alias /static/ "/usr/local/wsgi/static/"
<Directory "/usr/local/wsgi/static">
Order deny,allow
Allow from all
</Directory>
<Directory "/usr/local/wsgi/media">
Order deny,allow
Allow from all
</Directory>
WSGIScriptAlias / "/home/noah/Documents/Web/Basic/apache/django.wsgi"
<Directory "/usr/local/wsgi/scripts">
Order allow,deny
Allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)
根据朋友的建议,我还将上述内容复制到我的网站 - 可用默认值:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
TypesConfig /etc/mime.types
<Directory />
Options FollowSymLinks
AllowOverride None …Run Code Online (Sandbox Code Playgroud) 我终于让我的django安装工作,但是我注意到管理页面的典型外观缺失了,就好像没有应用于页面结构的样式.我是否有某种设置问题或路径问题阻止找到样式表?它们存放在哪里?我的页面看起来像是1994年.
我刚刚在我的登台服务器上移动了我的django站点,并且该站点的管理员端没有它的样式,当以前在本地开发它很好时,我在某处读到我需要创建一个符号链接,我做到了这样做
sudo ln -s /var/www/sico/htdocs /usr/lib/python2.5/site-packages/django/contrib/admin/
Run Code Online (Sandbox Code Playgroud)
但那没有什么我可以尝试的其他东西吗?
在开发环境中,我想使用app目录中的静态文件.
#settings.py
SITE_ROOT = os.path.dirname(os.path.realpath(__file__))
STATIC_ROOT = (os.path.join(SITE_ROOT, 'static_files/'))
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(SITE_ROOT, 'static/'),
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
TEMPLATE_CONTEXT_PROCESSORS = (
#...
'django.core.context_processors.static',
#...
)
INSTALLED_APPS = (
#...
'django.contrib.staticfiles',
#...
)
Run Code Online (Sandbox Code Playgroud)
我可以找到我的静态文件,如果位于,/static/css/file.css但不是如果在an_app/static/css/file.css.
我在Windows XP上运行django 1.3,python 2.7
我正在尝试在我的django应用程序的静态文件夹中设置一个CSS.
模板看起来像:
<html>
<head>
<title>css demo</title>
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}css/my.css" />
</head>
<body>
Run Code Online (Sandbox Code Playgroud)
生成的HTML如下所示:
<html>
<head>
<title>css demo</title>
<link rel="stylesheet" type="text/css" href="http://localhost/static/css/my.css" />
</head>
...
Run Code Online (Sandbox Code Playgroud)
因此,似乎我已经设置了所有内容,以便指定静态文件在模板中的位置,然后在生成的html中.
但是在' http://localhost/static/css/my.css '中注意到了.我怎么去那里?
我像这样跑了collectstatic:
C:\root\workspace\mywebapp\src\mywebapp>c:\Python27\python.exe manage.py collectstatic
You have requested to collect static files at the destination location as specified in your settings file.
This will overwrite existing files.
Are you sure you want to do this?
Type 'yes' to continue, or 'no' to cancel: yes
Copying 'c:\root\workspace\mywebapp\src\mywebapp\css_demo\static\css\my.css' …Run Code Online (Sandbox Code Playgroud)