如何在Yii上正确导入库

时间:2013-12-06 15:59:56

标签: php yii yii-extensions

在我的项目中,我使用的是imperavi-redactor库。但似乎它没有正确加载。

使用import()方法时,库已正确加载到资源中,但它不起作用。如果我修改我用来手动加载所有其他库后的css / js的模板,它可以工作。 这是生成的HTML:

<head>
  <link rel="stylesheet" type="text/css" href="/assets/92dfc12c/redactor.css" />
<link rel="stylesheet" type="text/css" href="/assets/f5a106d4/jui/css/base/jquery-ui.css" />
<script type="text/javascript" src="/assets/f5a106d4/jquery.js"></script>
<script type="text/javascript" src="/assets/92dfc12c/redactor.js"></script>
<script type="text/javascript" src="/assets/92dfc12c/lang/es_ar.js"></script>
<title>Create Notification</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link href="/themes/p35/css/main.css" rel="stylesheet" type="text/css" media="all">
  <link href="/themes/p35/css/mediaqueries.css" rel="stylesheet" type="text/css" media="all">
  <!--[if lt IE 9]>
  <link href="/themes/p35/css/ie/ie8.css" rel="stylesheet" type="text/css" media="all">
  <script src="/themes/p35/js/ie/css3-mediaqueries.min.js"></script>
  <script src="/themes/p35/js/ie/html5shiv.min.js"></script>
  <![endif]-->
  <!-- Slider -->
  <link href="/themes/p35/js/responsiveslides.js-v1.53/responsiveslides.css" rel="stylesheet" type="text/css" media="all">

  <!-- Redactor -->
  <link rel="stylesheet" type="text/css" href="/assets/54ed052f/imperavi-redactor/redactor.css"/>

    <!-- Scripts -->
    <script src="http://code.jquery.com/jquery-latest.min.js"></script>
    <script src="http://code.jquery.com/ui/1.10.1/jquery-ui.min.js"></script>
    <script src="/themes/p35/js/jquery.ba-bbq.js"></script>
    <script>window.jQuery || document.write('<script src="/themes/p35/js/jquery-latest.min.js"><\/script>\
    <script src="/themes/p35/js/jquery-ui.min.js"><\/script>')</script>
    <script>jQuery(document).ready(function($){ $('img').removeAttr('width height'); });</script>
    <script src="/themes/p35/js/responsiveslides.js-v1.53/responsiveslides.min.js"></script>
    <script src="/themes/p35/js/jquery-mobilemenu.min.js"></script>
    <script src="/themes/p35/js/custom.js"></script>
    <!-- Redactor -->
    <script src="/assets/54ed052f/imperavi-redactor/redactor.min.js"></script>
    <script src="/assets/54ed052f/imperavi-redactor/lang/es_ar.js"></script>

</head>

注意redactor.css,redactor.js和es_ar.js是如何被包含两次的...第一次包含每个文件是因为使用了常规的import()方法。第二次包含它们是因为手动修改模板以包含它们。

我可以忘记定期导入模块,只是更改我的主题以加载所有其他库所需的文件,但我不喜欢它,而且它总是会加载一个仅在几个视图中使用的库

我怎么能设法让import()方法适合我呢?

1 个答案:

答案 0 :(得分:0)

我无法从您的代码中判断您是否已经在使用它,但我个人推荐使用Yii-redactor扩展。它为您处理脚本文件的所有注册,您只需创建一个redactor小部件。 见http://www.yiiframework.com/extension/redactor/