【问题标题】:Django Not Loading All CSS FilesDjango 未加载所有 CSS 文件
【发布时间】:2010-10-23 19:04:12
【问题描述】:

我的 base.html 中列出了几个 CSS 文件,虽然其中一个已加载,但其他所有文件均未加载,javascript 或图像也未加载。

以下是base.html的一部分:

<html>
<head>
    <link href="/media/css/base.css" rel="stylesheet" type="text/css"/>        
    <link href="/media/css/home.css" rel="stylesheet" type="text/css"/>
    <link href="/media/css/slideshow.css" rel="stylesheet" type="text/css"/>
    <link href="/media/css/demos.css" rel="stylesheet" type="text/css"/>
    ...

媒体是包含静态文件的基本目录中的文件夹。查看生成的页面源时,base.css 加载正常,但对于其他所有内容,我得到 Page not found: [Name of CSS file here]。据我所知,base.css 和 home.css 之间没有任何区别;文件夹位置,文件权限...我只是想不通为什么它可以找到一个文件而不是其余文件。有人知道会发生什么吗?

Settings.py

ROOT_DIR = os.path.abspath("")
ROOT_URL = 'http://url that will be used for running product/'


MEDIA_ROOT = ROOT_DIR + 'media/'
MEDIA_URL = ROOT_URL + 'media/'

urls.py

urlpatterns += patterns('django.views',
        url(r'^media/css/(?P<path>.*)$', 'static.serve',
            {'document_root': ROOT_DIR + 'media/css/'}, name='css-root'),
        (r'^media/images/(?P<path>.*)$', 'static.serve',
            {'document_root': ROOT_DIR + 'media/images/'}),
        (r'^media/scripts/(?P<path>.*)$', 'static.serve',
            {'document_root': ROOT_DIR + 'media/script/'}),
)

【问题讨论】:

  • 当您直接在浏览器中查看这些路径时会发生什么?你得到你期望的文件了吗?
  • @Daniel - 就像我说的:我可以看到 base.css,但其他一切都是“找不到页面”
  • 抱歉,没有正确阅读。但是 - 听起来像一个奇怪的问题,我知道 - 你真的确定你得到的 base.css 是你网站的实际问题,而不是管理员的问题吗?
  • @Daniel - 管理员有 base.css 吗?现在你提到它,你是对的。这就是正在发生的事情。

标签: django static


【解决方案1】:

好的,我们现在已经深入了解了。您的 MEDIA_URL 设置与 ADMIN_MEDIA_PREFIX 设置冲突 - 它们都设置为 `/media',并且管理员优先。

MEDIA_URL 设置为其他值 - 例如 /site_media - 事情应该会更快乐。

【讨论】:

    【解决方案2】:

    您的 MEDIA_ROOT 设置为什么?我很惊讶你要做的不仅仅是“/css/base.css”等。

    【讨论】:

    • 同样的事情,但带有将在生产中使用的 URL 的前缀。我会用它来编辑我的帖子。
    猜你喜欢
    • 2019-03-06
    • 2020-08-31
    • 2020-04-28
    • 2022-01-20
    • 2016-08-28
    • 1970-01-01
    • 2020-08-23
    • 1970-01-01
    • 2020-07-06
    相关资源
    最近更新 更多