在生产环境中包含TinyMCE js文件时遇到了一些麻烦。
问题:
CakePHP安装:
它位于共享主机中,我已完成以下操作以使其正常工作:
app,plugin,vendor和lib目录位于public_html目录的一个级别。 (在我的情况下是/ home2 / username /)
将webroot中的内容复制到/ home2 / username / public_html
最后,我修改了Cake的常量ROOT,以匹配webroot复制的index.php文件中的/ home2 / username /。
正如我之前所说,我唯一可以考虑的是当tinymce.min.js开始包含其他js文件时htaccess做某事但我不是apache或重写规则的专家。其他一切都很完美。
查看:
javascript文件包含在使用html帮助程序的文章的admin_add和admin_edit视图中,它们不在head html标记之间。
<?php echo $this->Html->script('tinymce/tinymce.min'); ?>
<?php echo $this->Html->script('tinymce/init'); ?>
作为示例,我的admin_add.ctp看起来像这样:
<?php echo $this->Html->script('tinymce/tinymce.min'); ?>
<?php echo $this->Html->script('tinymce/init'); ?>
<div class="articulo prev">
<?php echo $this->Form->create('Articulo'); ?>
<fieldset>
<legend><?php echo __('Crear Articulo'); ?></legend>
<?php
echo $this->Form->input('titulo');
echo $this->Form->input('contenido');
echo $this->Form->input('categoria_id', array('type' => 'select', 'options' => $categorias, 'label' => 'Categoria', 'empty' => 'Seleccionar'));
echo $this->Form->input('fecha');
echo $this->Form->input('usuario_id');
?>
</fieldset>
<?php echo $this->Form->end(__('Submit')); ?>
</div>
<div class="links_interes">
<title><?php echo __('Acciones'); ?></title>
<ul>
<li><?php echo $this->Html->link(__('Listar Articulos'), array('action' => 'index')); ?></li>
<li><?php echo $this->Html->link(__('Listar Usuarios'), array('controller' => 'usuarios', 'action' => 'index')); ?> </li>
<li><?php echo $this->Html->link(__('Crear Usuario'), array('controller' => 'usuarios', 'action' => 'add')); ?> </li>
</ul>
</div>
答案 0 :(得分:1)
经过两天的研究,我发现了这个:Why is the JavaScript file parsed as PHP in my Cake plugin?
由于托管限制,我无法尝试该帖子中提到的任何解决方案,无法编辑php.ini和php函数symlink();不起作用......
为.htaccess添加了规则,因此该目录不受蛋糕重写规则的影响:
RewriteRule ^_noUrlReWrite/(.*) _noUrlReWrite/$1 [L]
最后查看脚本调用以使用完整的URL加载
echo $ this-&gt; Html-&gt;脚本('http://www.sitesdomain.com/_noUrlReWrite/js/tinymce/init.js');
并且有工作,然后出现了另一个问题,tinymce的工具栏字符看起来很奇怪,就像错误的编码一样。
问题出在Firefox上,因为:Firefox (which supports @font-face from v3.5) does not allow cross-domain fonts by default. This means the font must be served up from the same domain (and sub-domain) unless you can add an “Access-Control-Allow-Origin” header to the font.
然后我在tinymce文件夹中创建了另一个.htaccess:
<FilesMatch "\.(ttf|otf|eot|woff|tiff)$">
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
</FilesMatch>
问题解决了!