CakePHP 2.6.0 未加载 CSS 和 JS 文件
CakePHP 2.6.0 is not loading CSS and JS files
我刚刚将我的网站上传到服务器,但没有加载 css 和 js 文件,只有我能像文本一样看到该网站,在将 .htaccess 文件放在它们的位置后,我收到了这条消息在站点中:
Internal Server Error
服务器遇到内部错误或配置错误,无法完成您的请求。
请联系服务器管理员,并告知他们错误发生的时间,以及您可能执行的任何可能导致错误的操作。
服务器错误日志中可能提供了有关此错误的更多信息。
此外,在尝试使用 ErrorDocument 处理请求时遇到了 500 Internal Server Error 错误。
这些是我的 .htaccess 文件
/www/
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/ [L]
</IfModule>
/www/app/
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/ [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
加载问题,请确认您的服务器上是否启用了 mod_rewrite
。
我猜测您的 'clean' 网址中的 none 有效,而不仅仅是您的 CSS/JS 文件。所以首先,检查服务器上是否启用了 mod_rewrite。您可以通过使用 phpinfo()
检查它是否被列为启用的模块之一来执行此操作。
如果启用,您可能需要检查您的虚拟主机配置是否正确。你的虚拟主机的 conf 文件中应该有 AllowOverride All
,像这样:-
<VirtualHost *:80>
...
<Directory "/var/www/vhosts/example.com">
AllowOverride All
</Directory>
</VirtualHost>
我解决了我的问题,解决方案是首先(在我的情况下)删除三个 .htaccess 文件并在 app/config/core.php
中编辑这一行
//Configure::write('App.baseUrl', env('SCRIPT_NAME'));
对此:
Configure::write('App.baseUrl', env('SCRIPT_NAME'));
对我有用,谢谢大家。
请删除所有.htaccess 文件并启用:
Configure::write('App.baseUrl', env('SCRIPT_NAME'));
在 app/config/core.php 中。它工作正常。
我刚刚将我的网站上传到服务器,但没有加载 css 和 js 文件,只有我能像文本一样看到该网站,在将 .htaccess 文件放在它们的位置后,我收到了这条消息在站点中:
Internal Server Error
服务器遇到内部错误或配置错误,无法完成您的请求。
请联系服务器管理员,并告知他们错误发生的时间,以及您可能执行的任何可能导致错误的操作。
服务器错误日志中可能提供了有关此错误的更多信息。
此外,在尝试使用 ErrorDocument 处理请求时遇到了 500 Internal Server Error 错误。
这些是我的 .htaccess 文件
/www/
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/ [L]
</IfModule>
/www/app/
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/ [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
加载问题,请确认您的服务器上是否启用了 mod_rewrite
。
我猜测您的 'clean' 网址中的 none 有效,而不仅仅是您的 CSS/JS 文件。所以首先,检查服务器上是否启用了 mod_rewrite。您可以通过使用 phpinfo()
检查它是否被列为启用的模块之一来执行此操作。
如果启用,您可能需要检查您的虚拟主机配置是否正确。你的虚拟主机的 conf 文件中应该有 AllowOverride All
,像这样:-
<VirtualHost *:80>
...
<Directory "/var/www/vhosts/example.com">
AllowOverride All
</Directory>
</VirtualHost>
我解决了我的问题,解决方案是首先(在我的情况下)删除三个 .htaccess 文件并在 app/config/core.php
中编辑这一行//Configure::write('App.baseUrl', env('SCRIPT_NAME'));
对此:
Configure::write('App.baseUrl', env('SCRIPT_NAME'));
对我有用,谢谢大家。
请删除所有.htaccess 文件并启用:
Configure::write('App.baseUrl', env('SCRIPT_NAME'));
在 app/config/core.php 中。它工作正常。