【问题标题】:Drupal 7 Server or Caching Issue? Not updating CSS ChangesDrupal 7 服务器或缓存问题?不更新 CSS 更改
【发布时间】:2013-04-15 11:23:21
【问题描述】:

所以,我的 Drupal 网站没有反映我所做的任何 CSS 更改。我尝试过对网站进行硬缓存,我尝试过多个浏览器,我检查了服务器上的实际样式表以确保它正在复制(样式表反映了更改,但实际站点没有)。当然,我已经转到管理面板上配置/性能下的​​清除缓存部分。我已经进入 FTP 并手动删除了缓存。我已经清除了自己浏览器的缓存。 CSS 文件位于正确的文件夹中(我也检查过!)。我已经做了我能想到的一切。我尝试打开和关闭聚合和压缩 css 选项,清除其间的缓存。我检查了页面源代码,它肯定仍然使用旧的 CSS。

每次调试尝试都让我相信这与 DNS 不刷新有关。我在某处读到有人对 A 姓名记录进行了某种更改。我已将 TTL 设置为 1/2 小时,手动重置 A 名称记录,并删除了我在域上的转发,以防万一。

这些是我已经做过的事情。 Stack Overflow 的人们,我错过了什么?我已经在网上搜索了解决方案,没有遇到过这个问题的人找到了解决方案。有人遇到过这个问题并解决了吗?你做了什么?有什么想法吗?

::edit:: 我只是想补充一点,我使用骨架主题作为基础。

::edit edit:: 我还使用Devel 来重建主题注册表。

【问题讨论】:

  • 好的。情节变厚了。我去看了主题安装,看看是否有任何方法可以改变主题,看看它是否会重置 - 选择的主题是 Garland.... 我正在使用/显示 Skeleton。似乎可能存在某种目录问题,Drupal 正在寻找另一个主题文件夹中的更改?会是这样吗?怎么可能?
  • 您是否尝试在 css 文件的末尾添加时间戳?在这种情况下,您肯定会知道您正在编辑正确的文件。
  • Morpheus- 这是一个超级好主意。我一定会尝试这样做。

标签: css drupal drupal-7


【解决方案1】:

这是在分发的问题队列中交叉发布的,但我认为它与社区媒体初学者工具包分发本身没有任何关系。

首先,您应该通过在本地设置 DNS 和/或清除 DNS 缓存来排除 DNS。这些是适用于 OSX 的步骤,但您可以找到适用于任何操作系统的类似说明...

Clearing local DNS cache

Mac OSX Lion DNS lookup order

一旦您确定要通过 ftp 访问的站点是同一个站点,让我们看看发行版是如何加载主题的。使用任何 Drupal 分发/安装配置文件,您可以通过在站点/所有/模块或站点/所有/主题。移动使用 Drupal 注册表的模块时,您会得到一个 WSOD。这通常需要使用 drush rr 或手动清除缓存表]1,因为 WSOD 将停止加载所有页面,包括管理 > 性能 > 清除缓存。主题确实不太可能。

在这个特定的发行版中,您还可以使用 CSS Injector 模块来进行 CSS 更改,而无需自己更新 css 文件。该 css 存储在数据库中,因此它会影响您正在查看的站点。

【讨论】:

  • 这些都不起作用。我完全不知道该怎么做。 :/ 我也尝试过创建一个 drupal 缓存模块:
【解决方案2】:

检查主题.info文件是否与sites/all/themes/中的主题目录命名完全相同

如果没有,主题会显示给我,但 .info 文件无效。

将两者更改为相同,并且在站点外观下看到多个可用主题感到困惑,每个 .info 文件一个。激活另一个主题并看到变化。只需将目录和 .info 文件命名完全相同即可。

当然,还要清除缓存,关闭 ccs 聚合。

【讨论】:

    【解决方案3】:

    我从未使用过 Skeleton 基本主题,但 Omega 在外观下有一个主题设置,您可以在其中启用和禁用每个主题的样式。也许 Skeleton 也有同样的东西?

    【讨论】:

      【解决方案4】:

      我刚开始使用 Drupal,所以我可能完全同意我的答案,但我仍然告诉你我最近几天的经历。所以我安装了 Drupal Commerce Kickstart 并制作了一个 kickstart commerce 的子主题。这是我安装的。而当我修改它的 CSS 并通过 ftp 客户端上传它时,花了半个多小时才使修改生效。所以我进行了搜索,最后使用 Firebug 我发现 Drupal 将其作为自己的 CSS 并将其放置在 sites/default/files/css 中。当我使用 Inspector 查看其中的哪个 css 文件来进行我想要的更改时,在将更改后的 css 文件重新加载到 sites/default/files/css 中之后,需要几秒钟才能看到更改发生。 所以显然它在主题 css 文件之前需要这些 css 文件。这对我来说是愚蠢的。我不知道这是否可以帮助你。无论如何,我想知道是否真的有必要在 sites/default/files/css 中创建这些文件。我删除了它们进行测试,但它们又回来了。不知道是否有可能停止该过程。

      【讨论】:

      • 如果我更改我的 global.css,上传它,清空 sites/default/files/css 目录,刷新页面比我的更改几乎直接可见,但是处理太多
      【解决方案5】:

      来自 whois 主机的 Pagespeed(一个站点缓存系统)是我造成这种情况的原因。我登录到客户的托管帐户并将其关闭。问题已解决,但我还实现了这段代码,它允许在每次页面加载时重建主题注册表,这产生了巨大的差异。现在 css 更改是即时的。在网站上线之前,我将禁用此代码。

      您确定不是要重建主题注册表吗?

      要在开发过程中重建主题注册表和主题 .info 文件,请将其添加到主题的 template.php 文件中:

      <?php
      /**
       * Auto-rebuild the theme registry during theme development.
       */
      if (theme_get_setting('rebuild_registry') && !defined('MAINTENANCE_MODE')) {
        // Rebuild .info data.
        system_rebuild_theme_data();
        // Rebuild theme registry.
        drupal_theme_rebuild();
      }
      ?>
      

      并将其添加到您的 {themename}_form_system_theme_settings_alter(&$form, $form_state) 函数中的主题的 theme-settings.php 中:

      <?php
        $form['rebuild_registry'] = array(
          '#type'          => 'checkbox',
          '#title'         => t('Rebuild theme registry on every page.'),
          '#default_value' => theme_get_setting('rebuild_registry'),
          '#description'   => t('During theme development, it can be very useful to continuously <a href="!link">rebuild the theme registry</a>. WARNING: this is a huge performance penalty and must be turned off on production websites.', array('!link' => 'http://drupal.org/node/173880#theme-registry')),
        );
      ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-18
        • 1970-01-01
        相关资源
        最近更新 更多