【问题标题】:drupal not loading js/css files in default/files/drupal 没有在默认/files/ 中加载 js/css 文件
【发布时间】:2014-03-30 22:31:27
【问题描述】:

我的 drupal 站点没有加载 JS 文件或 CSS 文件

sites/default/files/js 

sites/default/files/css

即使它们在那里,我也可以在 FTP 上看到它们,但它们的权限是 664,我无法更改它们,它们会继续回到 664。正在加载站点/默认/中的其他文件,但不是那些。

该站点在本地运行良好,所以我知道这是服务器问题!有什么建议吗?

【问题讨论】:

  • 尝试将文件权限从 664 更改为 644
  • @Mehul,我刚试了下,又回到了664,不知什么原因改不了!
  • 你清除缓存了吗?
  • cssjs 文件夹的权限是什么?
  • 看看这个话题:drupal.stackexchange.com/questions/20364/…希望它会有所帮助!

标签: apache drupal drupal-7


【解决方案1】:

首先,不建议将 JS 和 CSS 文件保存在 sites/default 文件夹中。它们应保存在sites/all/themesites/all/modules 目录中。

而且,即使这样,也没有必要将它们加载到您的网站上。如果您想在您的站点上加载这些文件,您必须指定它。它是这样完成的:

主题:

在theme.info文件中添加scripts[] = mytheme.js添加js

在theme.info文件中添加stylesheets[all][] = mytheme.css来添加css

对于模块:

使用drupal_add_js('path_to_file')添加js文件

使用drupal_add_css('path_to_file')添加css文件

考虑到出于某些的原因,您已将文件放在sites/default 文件夹中,您需要提供文件的读取权限。建议将它们设置为755

【讨论】:

  • 在管理性能页面中检查压缩 JS 和 CSS 后,这些文件就在那里。它们包含在浏览器中是因为,我之前评论过:我实际上在 firebug 控制台中看到了 404,我的意思是浏览器尝试连接但没有获取文件。即使 Drupal 将它们放在那里并自动加载它们,我也会尝试移动它们......
【解决方案2】:

您是否检查过您的主题以确保 css 和 js 文件存在?信息文件?

【讨论】:

  • 我实际上在firebug控制台中看到了404,我的意思是浏览器试图连接但没有得到文件
【解决方案3】:

确保文件夹(sites/default/files/jssites/default/files/css)权限为 755744
User 对此文件夹具有可执行权限很重要

【讨论】:

    【解决方案4】:

    第一个问题是,您如何将这些 css & Js 包含到您的网站中?使用模块还是主题? 在所有情况下,您都应该将它们放在模块目录或主题目录中。 如果将它们放在主题目录中,则应将这些文件添加到主题的 .info 文件中。这是将 CSS/JS 文件包含到主题中的最佳方式。

    【讨论】:

    • 在管理性能页面中检查压缩 JS 和 CSS 后,这些文件就在那里。它们包含在浏览器中是因为,我之前评论过:我实际上在 firebug 控制台中看到了 404,我的意思是浏览器尝试连接但没有获取文件。即使 Drupal 将它们放在那里并自动加载它们,我也会尝试移动它们......
    【解决方案5】:

    为了清楚起见

    • 404 表示服务器找不到资源(本例中为文件)。
    • 如果您的文件权限是 664,并且它的父文件夹也是 664,那么任何人都可以读取该文件,所以这似乎不是问题。

    @kellyjohnson 询问文件是否存在,因为 404 错误在概念上意味着什么。他似乎明白您正在浏览器控制台中观察 404。这是商定的。但是自然的问题是文件是否实际存在于您期望的位置。如果您可以验证文件是否存在,那么只有几个选项可供探索。

    案例

    1. 对于公共资产(应用程序文档根目录下的资产),服务器的文档根目录可能不是您认为的那样;换句话说,服务器尝试为其服务的文件的绝对路径与文件物理位置的路径不同。

      a) 通过确定您配置的文档根目录来调试此问题,这可能是主“index.php”应用程序入口点的基本路径。从那里跟踪您到资产的相对路径。如果您仍然认为一切都是正确的,那么剩下的选择就是网络服务器正在重写您对资产的请求,这就是您应该关注的地方。

    2. 在非公共资产(文档根目录之外的资产)的情况下,您的应用程序路由可能没有路由到您假设它应该路由到的目录。

      b) 这种情况可以说更容易调试,因为您将进入应用程序,您可以随时回显调试代码,并将执行情况跟踪到资产提供者。

    祝你好运。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-11
      • 1970-01-01
      • 1970-01-01
      • 2018-07-22
      • 2016-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多