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 的及时回复,它确实对以后可能遇到类似问题的其他人有所帮助。