我遇到了关于Moodle的问题。
我已安装到Linux服务器上,但CSS和主题没有显示,所以我只有纯文本。
这怎么可能以及如何解决?
感谢。
答案 0 :(得分:13)
此解决方案应该有效。 我从本地迁移到生产后遇到了同样的问题,我不得不在
中禁用使用斜杠参数网站管理>服务器> HTTP。
这是您在页面上看到的第一个项目。如果选中则取消选择它并保存以查看是否有帮助。
答案 1 :(得分:1)
今天我在Linux moodle 3.2
服务器上使用Ubuntu
和Apache2
安装了最新的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选项。
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可能无法生成缓存的主题文件。