ThinkPHP 3.2는 공개 아래의 리소스 파일을 어떻게 읽나요?
我想大声告诉你
我想大声告诉你 2017-05-16 13:09:39
0
7
750

디렉터리 구조:

<코드>프로젝트
|---앱
|---공개
    |---블로그 프런트엔드
        |---홈
            |---js
            |---css
            |---img
            |---xxx.md
|---생각PHP
|---index.php

항목 파일 index.php의 내용은 다음과 같습니다.

if(version_compare(PHP_VERSION,'5.3.0','<')) die('PHP > 5.3.0 필요 !');
// 디버깅 모드를 켜는 것은 개발 단계에서 켜거나 배포 단계에서 false로 설정하는 것이 좋습니다.
정의('APP_DEBUG',true);
//애플리케이션 디렉토리 정의
정의('APP_PATH','./App/');
//ThinkPHP 엔트리 파일 소개
'./ThinkPHP/ThinkPHP.php'가 필요합니다.
// 친애하는 ^_^ 나중에 코드가 필요하지 않습니다. 간단합니다.

공개 config.php에 구성됨

'TMPL_PARSE_STRING' =>
    '__STATIC__' => __ROOT__ '/공개/블로그-프론트엔드',
),

그리고 뷰에서 Public을 사용하여 리소스를 사용합니다. 정적 리소스를 도입합니다.

<script src="__STATIC__/Home/js/jquery.min.js"></script>

위 코드에는 문제가 없으며 성공적으로 도입되었습니다.

그러나 컨트롤러에서는

함수 Xaction(){
    $file = "/Public/blog-frontend/Home/xxx.md";
    $fopen = fopen($file,'r');
    var_dump($fopen);
}

출력

거짓

이상하네요, 뷰에서 다시 fopen을 시도했습니다

$file = "__STATIC__/Home/xxx.md";
$fopen = fopen($file,'r');
var_dump($fopen);

출력

거짓

fopen을 다시 시도하고 file_get_contents로 바꿨습니다. 컨트롤러의 출력이든 뷰의 출력이든 결과는 여전히 false였습니다. . 그래서 접미사 .md.txt로 변경했는데 결과는 여전히 false였습니다.

어떻게 해결하나요?
보충사항:
@jiny 님의 방법으로 문제가 해결되었습니다.

어떤 이유로 IndexController.class.php에 인쇄합니다

var_dump(__ROOT__);
var_dump(__PUBLIC__) 

(위 내용은 기본값이며, 구성하지 않았습니다.)

출력:

문자열(0) ""
string(10) "__PUBLIC__" // if var_dump(__ABCDE__);// string(9) "__ABCDE__"
我想大声告诉你
我想大声告诉你

모든 응답(7)
曾经蜡笔没有小新

으아아아

習慣沉默
  1. 먼저 PHPXaction 메서드를 실행할 때 해당 경로가 무엇인지 이해해야 합니까?
    ThinkPHP의 항목 파일은 진입점 역할을 하는데, 이는 메소드의 실행이 실제로 이 파일(다양한 require)에서 완료됨을 의미하므로 경로는 Xaction을 실행하는 메소드가 있는 곳은 index.php가 있는 디렉토리입니다PHP 执行 Xaction 这个方法的时候对应的路径是什么?
    ThinkPHP 中的入口文件担当着入口的作用,意味着方法的执行实际上都是在这一文件中去完成的(各种 require),所以执行 Xaction 的方法所在路径即为 index.php 所在的目录

  2. 建议使用相对路径
    既然知道当前脚本的所在路径,那么要获取 Public

상대 경로를 사용하는 것이 좋습니다.
현재 스크립트의 경로를 알았으니 Public🎜에서 리소스 파일을 얻는 것이 매우 명확합니다. 으아아아 🎜 🎜
Ty80

으아악

迷茫

기본__PUBLIC__ 인쇄해서 보실 수 있습니다.
당신이 테스트한 방식이 옳지 않다고 생각합니다. 아이디어를 증명하기 위해 여러 가지 방법을 사용하려고 서두르지 말고 단계별로 진행하세요.

某草草

fopen을 사용할 때 해당 디렉터리 파일이 해당 권한으로 구성되어 있는지 확인하세요.

漂亮男人

초대해주셔서 감사합니다! TP的系统常量__PUBLIC__인용

사용
Peter_Zhu

초대해 주셔서 감사합니다. tp는 config에서 경로를 정의하여 직접 참조할 수 있는 시스템 상수 _PUBLIC_을 제공합니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿