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

问题描述 投票:3回答:8

我遇到了关于Moodle的问题。

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

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

谢谢。

css moodle
8个回答
13
投票

该解决方案应该有效。我从本地迁移到生产后遇到了同样的问题,我不得不禁用使用斜杠参数

站点管理>服务器> HTTP。

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


1
投票

今天我用moodle 3.2Ubuntu在Linux Apache2服务器上安装了最新的PHP5.6。安装成功后,在最终屏幕上没有加载css或js。与您的问题非常相似。当url被击中时获取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


0
投票

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

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

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

 Administration > Site administration > Appearance > Themes > Theme Selector

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

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


0
投票

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


0
投票

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

我在Apache配置中使用了ProxyPassMatch,将PHP 7.0用于Moodle v3.x,将PHP 5.6用于其他站点:

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

发生这种情况的一个可能原因。正如它描述的:qazxsw poi

ProxyPassMatch没有设置PATH_INFO的原因如下:

环境变量

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

  • proxy-fcgi-pathinfo:通过ProxyPass或ProxyPassMatch配置时,mod_proxy_fcgi不会设置PATH_INFO环境变量。这允许后端FCGI服务器正确地确定SCRIPT_NAME和Script-URI并符合RFC 3875第3.3节。如果您需要mod_proxy_fcgi为PATH_INFO生成“最佳猜测”,请设置此env-var。这是针对某些FCGI实现中的错误的解决方法。可以将此变量设置为多个值,以调整选择最佳猜测的方式(仅在2.4.11及更高版本中): 第一个点:PATH_INFO从第一个“。”后面的斜杠中分割出来。在URL中。 last-dot:PATH_INFO从最后一个“。”后面的斜杠中分割出来。在URL中。 full:尝试将URL映射到本地文件系统来计算PATH_INFO。 unescape:PATH_INFO是URL的路径组件,未转义/已解码。 任何其他值:PATH_INFO与URL的路径组件相同。最初,这是唯一的proxy-fcgi-pathinfo选项。

解决方案在这里描述:https://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html#env

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

https://serverfault.com/questions/888114/missing-path-info-on-apache-2-4-php5-6-fpm-proxy-fcgi/935406#935406

0
投票

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


0
投票

您可以在站点管理>服务器> HTTP中禁用斜杠参数,但不建议使用。激活服务器斜杠参数。文档:<FilesMatch "\.php$"> SetHandler "proxy:unix:/run/php/user.sock|fcgi://localhost" </FilesMatch> <Proxy "fcgi://localhost/" enablereuse=on max=10> </Proxy>


-1
投票

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

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

最后,确保Moodle站点的调试开启(直到开发人员级别)并查看是否能够解决问题。

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

© www.soinside.com 2019 - 2024. All rights reserved.