moodle没有显示CSS和主题与Linux服务器

时间:2014-02-14 14:39:08

标签: css moodle

我遇到了关于Moodle的问题。

我已安装到Linux服务器上,但CSS和主题没有显示,所以我只有纯文本。

这怎么可能以及如何解决?

感谢。

12 个答案:

答案 0 :(得分:13)

此解决方案应该有效。 我从本地迁移到生产后遇到了同样的问题,我不得不在

中禁用使用斜杠参数

网站管理>服务器> HTTP。

这是您在页面上看到的第一个项目。如果选中则取消选择它并保存以查看是否有帮助。

答案 1 :(得分:1)

今天我在Linux moodle 3.2服务器上使用UbuntuApache2安装了最新的PHP5.6。安装成功后,在最终屏幕上没有加载css或js。与您的问题非常相似。点击网址时获取ERR_CONTENT_DECODING_FAILED

/theme/yui_combo.php?rollup/3.17.2/yui-moodlesimple-min.css 

我做了一些谷歌搜索,发现它与zlib压缩有关,并在我的php.ini文件中启用后问题解决了。

找到你的php.ini文件,转到php.ini文件

sudo vi /etc/php/5.6/apache2/php.ini

在2行以下添加或设置

zlib.output_compression = on
zlib.output_compression_level = 6

重启apache

sudo service apache2 restart

它将开始正常工作。

相关问题:https://moodle.org/mod/forum/discuss.php?d=324581#p1421502

答案 2 :(得分:0)

您似乎正在查看标准主题的moodle。

默认情况下,moodle会应用标准主题。您可以选择主题部分下可用的任何其他主题。

要更改主题,您将以admin身份访问主题部分页面。

 Administration > Site administration > Appearance > Themes > Theme Selector

选择任何其他主题后,您必须清除所有缓存。

有关更改主题的更多信息:Change moodle theme

答案 3 :(得分:0)

如果您使用的是nginx,请确保/ etc / nginx / sites-enabled / [您的网站]中的配置文件符合moodle的指示。 复制此配置 https://docs.moodle.org/32/en/Nginx

答案 4 :(得分:0)

我将服务器操作系统从Debian 8升级到Debian 9 Stretch,此后CSS停止在Moodle中工作。

我在Apache config中使用ProxyPassMatch将Moodle v3.x的PHP 7.0和其余站点的PHP 5.6都使用了:

ProxyPassMatch "^/(.*\.php(/.*)?)$" "unix:/var/run/php/php7.0-fpm.sock|fcgi://localhost/var/www/"

发生这种情况的一个可能原因。如其描述: https://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html#env

ProxyPassMatch不设置PATH_INFO的原因如下:

  

环境变量

     

除了配置指令   控制mod_proxy的行为,有很多环境   控制FCGI协议提供程序的变量:

     
      
  • proxy-fcgi-pathinfo :   通过ProxyPass或ProxyPassMatch配置时,   mod_proxy_fcgi不会设置PATH_INFO环境变量。这个   允许后端FCGI服务器正确确定SCRIPT_NAME和   脚本URI,并符合RFC 3875第3.3节的规定。如果相反,你   需要mod_proxy_fcgi为PATH_INFO生成“最佳猜测”,将其设置为   env-var。这是某些FCGI实现中的错误的解决方法。   可以将此变量设置为多个值,以调整最佳值   选择了猜测(仅在2.4.11及更高版本中):

         
        
    • 第一个点:PATH_INFO为   从第一个“。”之后的斜杠开始拆分。在网址中。

    •   
    • 最后一个点:   PATH_INFO从最后一个“。”后面的斜杠中分离出来。在网址中。

    •   
    • 完整:PATH_INFO是通过尝试将URL映射到本地来计算的   文件系统。

    •   
    • 转义:PATH_INFO是URL的路径部分,   未转义/解码。

    •   
    • 任何其他值:PATH_INFO与路径相同   URL的组成部分。本来这是唯一的   proxy-fcgi-pathinfo选项。

    •   
  •   

解决方案描述如下: https://serverfault.com/questions/888114/missing-path-info-on-apache-2-4-php5-6-fpm-proxy-fcgi/935406#935406

SetHandler应该像这样在Apache配置中设置,以解决PATH_INFO变量问题:

<FilesMatch "\.php$">
        SetHandler  "proxy:unix:/run/php/user.sock|fcgi://localhost"
</FilesMatch>
<Proxy "fcgi://localhost/" enablereuse=on max=10>
</Proxy>

答案 5 :(得分:0)

它可能不显示任何CSS或样式的最基本原因可能是在Moodle数据文件夹中设置的权限不正确。如果Apache无法写入该目录,则它将无法处理SCSS并生成所需的缓存文件。

答案 6 :(得分:0)

您可以在“站点管理”>“服务器”>“ HTTP”中禁用斜杠参数,但不建议这样做。激活服务器的斜杠参数。此处的文档:https://docs.moodle.org/36/en/Using_slash_arguments

答案 7 :(得分:0)

这是一个较晚的回复,但我认为这可能会帮助像我这样的人。 当我将谷歌云从Google Cloud迁移到Godaddy时,我也遇到了同样的情况,这导致纯文本页面没有任何CSS。我尝试进行全新安装的moodle,只是为了检查是否缺少任何元素。安装拒绝继续,并给出一条错误消息“ PHP iconv扩展丢失”。后来我去终端并运行以下命令(以安装缺少的iconv扩展并重新启动apache):

yum install ea-php73-php-iconv -y
sudo systemctl restart httpd

就是这样。一切都按预期开始!

答案 8 :(得分:0)

那帮助了我,但我不知道为什么。
网站的nginx conf文件:

...
location ~ [^/]\.php(/|$) {
    ...
    try_files $uri =404; #comment this line if it exists
    ...
}
...

答案 9 :(得分:0)

即使我有同样的问题 CSS 无法正确加载和一些 js 问题,

然后我在该站点正确加载后进行了一些 nginx 站点配置更改

共享我的站点配置文件

 server {

     listen 80;
     server_name moodle.local;
     root /var/www/html/moodle/moodle;
     index index.php index.html index.htm index.nginx-debian.html;
     location / {
                try_files $uri $uri/ /index.php?$query_string;
        }


     location ~ ^(.+\.php)(.*)$ {
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_index           index.php;
        fastcgi_pass           unix:/run/php/php7.2-fpm.sock;
        include                 /etc/nginx/mime.types;
        include                 fastcgi_params;
        fastcgi_param           PATH_INFO       $fastcgi_path_info;
        fastcgi_param           SCRIPT_FILENAME  $document_root$fastcgi_script_name;
       }
 }

答案 10 :(得分:0)

安装干净的moodle 3.1x 后我遇到了同样的问题

由于缺少 JS 负载而无法填写密码输入字段,因此安装卡住了。

我也无法导航到“站点管理 > 服务器 > HTTP”,因此我编辑了 config.php手动禁用斜杠参数< /p>

只需在$CFG->slasharguments = false;前添加require_once(__DIR__ . '/lib/setup.php');

答案 11 :(得分:-1)

您是否检查过您的网络服务器以查看是否有任何错误消息?

接下来,您是否尝试过使用Web浏览器开发人员工具查看是否存在任何错误(尤其是404错误)?

最后,确保Moodle站点的调试工作正常(直到开发人员级别),看看是否能解决问题。

您可能还想检查所有Moodle数据文件夹是否可写,否则Moodle可能无法生成缓存的主题文件。