管理文件夹内Django站点中的URL

时间:2014-06-28 01:56:06

标签: python django

所以我将Django项目放在服务器上的一个文件夹中,如下所示:

www.mydomain.com/myfolder /

索引页面加载,但css文档之类的东西不加载,因为路径不正确。我错过了一条捷径吗?我查看了settings.py文档,找到了指定我的站点文件夹的地方,但没有找到任何帮助。

例如,如果我在我的设置中指定了这个:

STATIC_URL = 'static/'

然后它将在我的 / myfolder / login 页面上查找我的css文档:

http://mydomain.com/myfolder/login/static/stylesheet.css

如果我指定:

STATIC_URL = '/static/'

然后它将在我的 / myfolder / login 页面上查找我的css文档:

http://mydomain.com/static/stylesheet.css

与此同时,我的css文件位于:

http://mydomain.com/myfolder/static/stylesheet.css

我需要更改所有内容并在所有内容之前指定/ myfolder /吗?

3 个答案:

答案 0 :(得分:1)

这个问题在django教程上有一个很好的练习解决方案:

请参阅:

https://docs.djangoproject.com/en/1.6/intro/tutorial06/#customize-your-app-s-look-and-feel

您应该在每个应用程序中创建一个/static/appname/文件夹,然后将静态文件放在其中。

因此,在您的应用中,静态文件网址应该变为:

http://mydomain.com/static/app_name/stylesheet.css

哪个不会与其他应用发生冲突。

你最好阅读我上面提供的链接,教程显示了一个好习惯。

答案 1 :(得分:1)

你不只是需要这样做吗?

STATIC_URL = '/myfolder/static/'

答案 2 :(得分:1)

我认为您需要在设置中添加STATIC_ROOT的路径,并更新urls.py文件。

我的例子:

#settings.py 

....

STATIC_URL = '/static/'

STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "static",)
#path to your static folder

#urls.py

...
from django.conf import settings
from django.conf.urls.static import static

....

urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)