PHP:如何在yii2中从我的模块访问Web目录中的.js和.csss?

时间:2017-02-02 11:15:37

标签: javascript php css module yii2

我在Yii2框架中构建了一个应用程序,我在后端中开发了应用程序,但知道我想将它们复制成一个模块。

这是我的应用程序目录

backend
--modules
  --pstk
    --controllers
      --ValidationController.php
      --DefaultController.php
      --InterviewController.php
      --StudentController.php
      --SiteController.php
      --UsersController.php
    --models
      --Validation.php
      --Interview.php
      --Student.php
      --Users.php
    --views
      --validation
        --_form.php
        --view.php
        --index.php
        --update.php
        --create.php
      --interview
      --student
      --users
    --Module.php
--web
  --css
    --manual_general.css
  --js
    --upload_header.js
  --style

例如,我已成功在浏览器中的模块中运行view.php,但该模块无法从.css访问.jsbackend/web/。 因此显示了视图,但是视图被混淆,并且所有按钮在单击时都没有执行任何操作。

任何人都知道为什么该模块无法访问manual_general.css中的upload_header.jsbackend/web/?以及如何解决这个问题?

任何帮助,将不胜感激。谢谢:))

EDITED:

这是连接.js.css的mi view.php中的代码

<link rel="stylesheet" type="text/css" href="../../../../web/css/manual_general.css">
<script type="text/javascript" src="../../../../web/js/upload_header.js"></script>

1 个答案:

答案 0 :(得分:1)

尝试使用yii \ helpers \ Url :: to,如:

<link rel="stylesheet" type="text/css" href="<?= Url::to('@web/css/manual_general.css') ?>">
<script type="text/javascript" src="<?= Url::to('@web/js/upload_header.js') ?>"></script>

或者,在view.php中你可以这样做(假设$ this是你的View实例):

<?php $this->registerCssFile('@web/css/manual_general.css'); ?>
<?php $this->registerJsFile('@web/js/upload_header.js'); ?>