Croogo - 新 VPS 上的 CakePHP 站点未加载 js 和 css
Croogo - CakePHP site on new VPS not loading js and css
我最近在 inmotionhosting.com 上购买了 VPS,并且在加载任何 js 时难以部署我的 Croogo 2.3.2,css, img 文件在我的自定义主题 /View/Themed/Mosaic/webroot 和我的 Croogo 插件下 /Vendor/croogo/croogo/Croogo/webroot/.
当然,我在 /View/Themed/Mosaic/Layouts/default.ctp:
中使用适当的 CakePHP 约定包含了上述资源
echo $this->Html->css(array(
'bootstrap',
'bootstrap-theme',
'/croogo/css/reset',
'font-awesome.min',
'../slick/slick',
'../slick/slick-theme',
'/jquery-ui/jquery-ui.min',
'slicknav.min',
'styles'
));
echo $this->Layout->js();
echo $this->Html->script(array(
'/croogo/js/html5',
'/croogo/js/jquery/jquery-3.2.0.min',
'/jquery-ui/jquery-ui.min',
'/croogo/js/jquery/jquery.slug',
'/croogo/js/jquery/jquery.cookie',
'/croogo/js/jquery/jquery.hoverIntent.minified',
'/croogo/js/jquery/superfish',
'/croogo/js/jquery/supersubs',
'/croogo/js/jquery/jquery.tipsy',
'/croogo/js/jquery/jquery.elastic-1.6.1.js',
'/croogo/js/jquery/thickbox-compressed',
'/croogo/js/underscore-min',
'bootstrap.min',
'../slick/slick.min',
'jquery.slicknav.min',
'theme.js',
));
echo $this->fetch('script');
echo $this->fetch('css');
Croogo 2.3.2 有自己和 cakephp 运行 作为供应商:
/Vendor/croogo
/Vendor/cakephp
因此,我有两个 .htaccess 个文件。
One under /home/mosaic40/v2.mosaicmarble.com/:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/ [L]
</IfModule>
One under /home/mosaic40/v2.mosaicmarble.com/webroot/:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/ [QSA,L]
</IfModule>
mod_rewrite is installed and activated.
最后但同样重要的是,在有人开始建议我的 httpd 配置之前,这里是:
DocumentRoot /home/mosaic40/v2.mosaicmarble.com/
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory />
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>
我似乎无法确定。简而言之,插件和主题的资源 (js/css/img) 由于某种原因没有被加载。
更新 1:
似乎 /webroot 资产也没有被加载(例如:http://v2.mosaicmarble.com/uploads/FG204-G.jpg)。
所述 link 是 http://v2.mosaicmarble.com/(查看正在渲染的内容)。
Croogo v2.3.2
CakePHP v2.9.3
Linux 安装了 NGINX 的服务器
mod_rewrite 活跃(点击任何 link,你会看到漂亮的网址)
当您通过调度程序获取插件的资产时。您必须使用插件命名空间作为 URL.
echo $this->Html->script('Croogo.html5');
请参阅有关链接到插件资产的手册:
https://book.cakephp.org/3.0/en/plugins.html#linking-to-assets-in-plugins
最终的明显解决方案是禁用 NGINX...这很奇怪,因为我拥有其他几台服务器,如 Media Temple 的 VPS 安装了 NGINX 和我所有的网站 运行 完美无缺。
所以,是的...禁用 NGINX 完成了工作。
感谢@cgTag 的及时回复,它确实对以后可能遇到类似问题的其他人有所帮助。
我最近在 inmotionhosting.com 上购买了 VPS,并且在加载任何 js 时难以部署我的 Croogo 2.3.2,css, img 文件在我的自定义主题 /View/Themed/Mosaic/webroot 和我的 Croogo 插件下 /Vendor/croogo/croogo/Croogo/webroot/.
当然,我在 /View/Themed/Mosaic/Layouts/default.ctp:
中使用适当的 CakePHP 约定包含了上述资源 echo $this->Html->css(array(
'bootstrap',
'bootstrap-theme',
'/croogo/css/reset',
'font-awesome.min',
'../slick/slick',
'../slick/slick-theme',
'/jquery-ui/jquery-ui.min',
'slicknav.min',
'styles'
));
echo $this->Layout->js();
echo $this->Html->script(array(
'/croogo/js/html5',
'/croogo/js/jquery/jquery-3.2.0.min',
'/jquery-ui/jquery-ui.min',
'/croogo/js/jquery/jquery.slug',
'/croogo/js/jquery/jquery.cookie',
'/croogo/js/jquery/jquery.hoverIntent.minified',
'/croogo/js/jquery/superfish',
'/croogo/js/jquery/supersubs',
'/croogo/js/jquery/jquery.tipsy',
'/croogo/js/jquery/jquery.elastic-1.6.1.js',
'/croogo/js/jquery/thickbox-compressed',
'/croogo/js/underscore-min',
'bootstrap.min',
'../slick/slick.min',
'jquery.slicknav.min',
'theme.js',
));
echo $this->fetch('script');
echo $this->fetch('css');
Croogo 2.3.2 有自己和 cakephp 运行 作为供应商:
/Vendor/croogo
/Vendor/cakephp
因此,我有两个 .htaccess 个文件。
One under /home/mosaic40/v2.mosaicmarble.com/:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/ [L]
</IfModule>
One under /home/mosaic40/v2.mosaicmarble.com/webroot/:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/ [QSA,L]
</IfModule>
mod_rewrite is installed and activated.
最后但同样重要的是,在有人开始建议我的 httpd 配置之前,这里是:
DocumentRoot /home/mosaic40/v2.mosaicmarble.com/
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory />
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>
我似乎无法确定。简而言之,插件和主题的资源 (js/css/img) 由于某种原因没有被加载。
更新 1: 似乎 /webroot 资产也没有被加载(例如:http://v2.mosaicmarble.com/uploads/FG204-G.jpg)。 所述 link 是 http://v2.mosaicmarble.com/(查看正在渲染的内容)。
Croogo v2.3.2 CakePHP v2.9.3 Linux 安装了 NGINX 的服务器 mod_rewrite 活跃(点击任何 link,你会看到漂亮的网址)
当您通过调度程序获取插件的资产时。您必须使用插件命名空间作为 URL.
echo $this->Html->script('Croogo.html5');
请参阅有关链接到插件资产的手册:
https://book.cakephp.org/3.0/en/plugins.html#linking-to-assets-in-plugins
最终的明显解决方案是禁用 NGINX...这很奇怪,因为我拥有其他几台服务器,如 Media Temple 的 VPS 安装了 NGINX 和我所有的网站 运行 完美无缺。
所以,是的...禁用 NGINX 完成了工作。
感谢@cgTag 的及时回复,它确实对以后可能遇到类似问题的其他人有所帮助。