【问题标题】:CakePHP 2.6.0 is not loading CSS and JS filesCakePHP 2.6.0 不加载 CSS 和 JS 文件
【发布时间】:2018-01-24 18:12:10
【问题描述】:

我刚刚将我的网站上传到服务器,但没有加载 css 和 js 文件,只有我可以像文本一样看到网站,在将 .htaccess 文件放在它们的位置后,我在网站中收到了这条消息:

内部服务器错误

服务器遇到内部错误或配置错误,无法完成您的请求。

请联系服务器管理员,并告知他们错误发生的时间,以及您所做的任何可能导致错误的事情。

服务器错误日志中可能会提供有关此错误的更多信息。

此外,在尝试使用 ErrorDocument 处理请求时遇到 500 Internal Server Error 错误。

这些是我的 .htaccess 文件

/www/

 <IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

/www/app/

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule    ^$    webroot/    [L]
RewriteRule    (.*) webroot/$1    [L]

/www/app/webroot/

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

一些想法为什么不工作?希望您能帮帮我,谢谢。

<?php

    echo $this->Html->css('bootstrap');
    echo $this->Html->css('styles');

    echo $this->Html->script('jquery');
    echo $this->Html->script('bootstrap.min');

    echo $this->fetch('meta');
    echo $this->fetch('css');
    echo $this->fetch('script');

?>

【问题讨论】:

  • 您能否在视图模板中显示用于输出 CSS/JS 的代码?
  • @drmonkeyninja 这是代码,但我认为问题出在一些文件的配置上,如 .htaccess 或其他文件,我将 RewriteBase / 添加到 .htaccess 文件和“500 Internal Server Error” " 消失了,现在网站是空的
  • 您还需要在 webroot 内的 .htaccess 中使用 RewriteBase /webroot。还要确保在您的蛋糕应用中启用了调试模式,以便您看到错误。

标签: css .htaccess cakephp mod-rewrite cakephp-2.6


【解决方案1】:

我解决了我的问题,解决方案是首先(在我的情况下)删除三个 .htaccess 文件并在 app/config/core.php 中编辑这一行

//Configure::write('App.baseUrl', env('SCRIPT_NAME'));

到这里:

Configure::write('App.baseUrl', env('SCRIPT_NAME'));

它对我有用,无论如何谢谢大家。

【讨论】:

  • 也以同样的模式为我工作,我使用的是 Cakephp 2.7.9 Sheared hosting (cpanel based)
【解决方案2】:

关于CSSJS 加载问题,请确认您的服务器上是否启用了mod_rewrite

【讨论】:

  • 如何在实时服务器中验证这一点?
  • 上传一个测试文件并写echo phpinfo();并运行该文件并找到 mode_rewrite 关键字,如果它在那里,那么您的 mode_rewrite 已打开,否则请联系您的托管服务提供商,他们将检查,如果它没有打开,那么他们就可以了
  • 不,没有关键字“mode_rewrite”或与之相关的东西
  • 您可以在这里查看 www.genebi.net
  • 这没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。
【解决方案3】:

我猜你的“干净”网址都不起作用,不仅仅是你的 CSS/JS 文件。因此,首先,检查服务器上是否启用了 mod_rewrite。您可以通过使用phpinfo() 将其列为启用的模块之一来执行此操作。

如果已启用,您可能需要检查您的虚拟主机是否配置正确。您的虚拟主机的 conf 文件中应该有 AllowOverride All,如下所示:-

<VirtualHost *:80>
    ...
    <Directory "/var/www/vhosts/example.com">
        AllowOverride All
    </Directory>
</VirtualHost>

【讨论】:

  • 使用 phpinfo() 与“mod_rewrite”没有任何关系,并且此服务器没有 vhost 文件。
  • 看这是网址 www.genebi.net
【解决方案4】:

请删除所有 .htaccess 文件并启用:

配置::write('App.baseUrl', env('SCRIPT_NAME'));

在 app/config/core.php 中。它工作正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-22
    • 2012-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-27
    相关资源
    最近更新 更多