我已经看到很多关于链接到CakePHP中的主题资产的问题,但没有一个问题解决了我的问题,最近的帖子也是在2012年,所以我想我会把我的问题浮出水面.
我在CakePHP 2.2.4应用程序中实现了主题.我的主题名为"默认"(之前称为"默认",直到1分钟前)位于app/View/Themed/default
(之前主题名称也有相应的大写字母D作为文件夹名称).
我的css文件位于app/View/Themed/default/webroot/css/style.css
我app/View/Themed/default/Layouts/default.ctp
用以下代码调用的位置
Default.ctp布局
echo $this->Html->css('style');
Run Code Online (Sandbox Code Playgroud)
(我已尝试将大写W用于webroot"以防万一",但毫无意外的是没有用)
我在AppController中包含了这个链接,以确定我正在使用的主题.所有视图文件都指向正确的主题,但现在的问题是样式表(我还没有弄乱其他资产,如js或图像文件).
AppController的
class AppController extends Controller {
public $theme = 'default'; // previously 'Default'
// also, have used both 'public $theme' and 'var $theme', no difference
Run Code Online (Sandbox Code Playgroud)
我已经阅读了以下问题,但没有一个"解决方案"有效.大多数解决方案是检查拼写/大写,检查文件夹的权限,检查我的.htaccess文件等.仍然没有.还有新想法?
的.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
主题webroot和css文件夹的文件夹权限是755.
这是我用过的一些资源,没有运气.
http://book.cakephp.org/2.0/en/views/themes.html
无法在cakephp的Themes webroot文件夹中获取css和图像文件
https://groups.google.com/forum/#!topic/cake-php/xaRAugMoNSc
https://groups.google.com/forum/#!topic/cake-php/siYVWchUb1g
更新:使用$this->Html->image('image.jpg')
正确显示位于的定义图像View/Themed/Default/webroot/img/image.jpg
.但是,使用$this->Html->css('style')
try来app/webroot/css/style.css
从而不是从中拉出样式表app/View/Themed/Default/webroot/css/style.css
.我还必须将我的主题的主题名称和文件夹名称更改为"默认",并使用大写的D以使图像正确链接.样式表仍然无法正确链接.如果我在浏览器中直接导航到我的主题样式表,则会出现一个空白页面.如果我导航到我的主题文件夹中不存在的样式表,那么我会收到正确的错误消息.但是,查看我的主题样式表(确实存在的样式表)的来源会显示一个空白页面.
我已阅读以下doc条目:
http://book.cakephp.org/2.0/en/console-and-shells.html
http://book.cakephp.org/2.0/en/console-and-shells/cron-jobs.html
以及这个问题:
我在尝试实现两个cron作业函数时遇到了麻烦,其中一个与上面列出的Stack Overflow问题完全相同,用于发送测试电子邮件.另一个只是在我的"crons"表中插入一个新行.两者都不起作用,我相信这是我试图称之为cron工作的方式.我不相信我正在使用正确的道路.
控制台/命令/ CronShell.php
class CronShell extends AppShell {
public $uses = array('Cron');
public function trigger() {
$cron = array(
'Cron' => array(
'title' => 'Cron Test'
)
);
$this->Cron->create();
$this->Cron->save($cron);
}
}
Run Code Online (Sandbox Code Playgroud)
我已经使用上面的代码设置了一个CronsController.php作为索引操作的一部分.通过控制器访问代码时工作正常,因此问题在于shell或cron作业.
我曾经按照命令将此方法称为cron作业,没有工作......
***** cd /home1/bhndbrwn/public_html/cake2/app && Console/cake cron trigger
***** cd /home1/bhndbrwn/public_html/cake2/app && Console/cake cronshell trigger
***** cd /home1/bhndbrwn/public_html/cake2/app && Console/cake Cron trigger
***** cd /home1/bhndbrwn/public_html/cake2/app && Console/cake CronShell trigger
***** cd /home1/bhndbrwn/public_html/cake2/app/Console/cake cron trigger
***** cd /home1/bhndbrwn/public_html/cake2/app/Console/cake cronshell trigger …
Run Code Online (Sandbox Code Playgroud) 我正在将我的单站点 WordPress 安装转换为多站点。我正在尝试修复主站点上损坏的 CSS/JS。
我的网络上目前有两个网站:
我的多站点安装位于一个子目录内,我们将其称为“ wordpress ”。所以文件路径看起来像public_html/wordpress
.
我的目标是两个网站的 URL 中都不包含“wordpress”子目录。除了主站点上损坏的 CSS 和 JS 之外,一切似乎都正常(辅助站点看起来很好)。
检查代码时,所有 CSS 和 JS 调用都指向http://www.example.com/wp-content/,但在那里找不到文件。如果我在浏览器中访问http://www.example.com/wordpress/wp-content ,就会找到这些文件。我想隐藏 WordPress 文件夹,但仍然能够检索文件。
我对如何设置 HTACCESS 文件感到困惑。我已经对其进行了一些初步更改,以便使子目录中的多站点正常工作。这些都是我在 StackOverflow 和其他在线网站上找到的关于如何将站点移动到带有子目录的多站点并隐藏子目录的指南。我还没有找到任何关于解决 CSS/JS 问题的信息。
我认为我需要更新 3 个 HTACCESS 文件中的一个或多个。
1.) public_html/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/wordpress/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /wordpress/$1
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ /wordpress/index.php [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
2.) public_html/wordpress/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule …
Run Code Online (Sandbox Code Playgroud) 我昨天刚开始使用CakePHP v3.1.3,而且我一次只能在我的CakePHP 2.4.2网站上迁移一小部分.主要是试图了解变化.我遇到了问题Configure::read()
.
一点背景信息:我的数据库中有SettingsSite,SettingsSiteHeaders和SettingsSitesOptions表,我也为这些表做了相应的表对象.在我的SettingsSiteTable类中,我有一个方法可以检索存储在数据库中的设置.一切都很好,以下代码在我的AppController中工作没问题.
<?php
namespace App\Controller;
use Cake\Controller\Controller;
use Cake\Event\Event;
use Cake\Core\Configure;
class AppController extends Controller{
public function beforeFilter(Event $event){
debug(Configure::read('SettingsSite.title'));
}
Run Code Online (Sandbox Code Playgroud)
我的问题是在我的视图中正确显示值.
我在主题默认布局中有以下代码,位于plugins/Default/src/Template/Layout/default.ctp中
<title>
<?php
echo $this->fetch('title') . ' | ' .
Configure::read('SettingsSite.title');
?>
</title>
Run Code Online (Sandbox Code Playgroud)
我收到一个" 类'配置'没有找到插件/ Default/src/Template/Layout/default.ctp "错误消息.
然后我转到AppView.php文件并在命名空间声明下添加以下行:
use Cake\Core\Configure;
Run Code Online (Sandbox Code Playgroud)
错误仍然存在.
cakephp ×3
.htaccess ×1
apache ×1
assets ×1
cakephp-2.2 ×1
cakephp-2.5 ×1
cakephp-3.0 ×1
cakephp-3.1 ×1
cron ×1
css ×1
php ×1
themes ×1
wordpress ×1