2013-02-11 4 views
0

"프로덕션"응용 프로그램과 동일한 도메인에서 웹 응용 프로그램을 개발 중입니다. 최상위 웹 사이트의 하위 디렉토리에 불과합니다. 다음과 같이 :Codeigniter의 "준비"사이트 및 상대 HTML 경로

나는 CodeIgniter로 작업하는 상대 경로를 얻으려고하는 사람들을 보았습니다. 과거에는 "v3"사이트의 모든 HTML 이미지 선언에 붙어 있었지만 HTML 사이트를 구입했습니다. 최근에 템플릿을 만들고 수백 개의 HTML 태그에 <?php base_url() ?>을 삽입하면 너무 비효율적 인 것처럼 보입니다.

누군가가이 문제를 해결할 수 있기를 바랍니다. 모든 HTML 참조를 검색하고 교체하지 않고 직접 dev 코드 (일명 "/ v3 /")를 사용할 수있게하고 싶습니다.

+0

내가 아는 바로는'base_url()'은 CodeIgniter에서 올바른 경로를 만들기위한 함수이다. 따라서 템플릿 작성자가이 함수를 사용하지 않으면 CodeIgniter 모범 사례가 될 수있는만큼 실용적이지 않습니다. –

+0

오른쪽 -이 경우 템플릿이 codeigniter 용으로 명시 적으로 만들어지지 않았으므로 저는 CI를 좋아하며 계속 사용하고 싶습니다. HTML 템플릿에 PHP를 (CI를 통해) 통합하려고합니다 ... – user2059927

+0

불행히도 당신은 단지'base_url()'과 같은 CodeIgniter 특정 함수 호출로 URL을 대체하는 것입니다. –

답변

0

정확히 $config['base_url']의 목적은 application/config/config.php입니다. 당신이 http://site.com/v3/로 설정 한 경우 base_url() 또는 그러나

site_url()를 사용하는 모든 곳에서,이 사이트에 반영 될 것입니다, 나는 모든 src, href 등을 위해 전체 사이트에 걸쳐 base_url() 또는 site_url()를 사용하는 것이 나쁜 관행 있음을 알아 두셔야합니다. 미친 PHP 인터프리터를 호출하고 있습니다.

<base> 태그를 사용하여 HTML 문서에 <head><base href="<?= site_url();?>">을 사용하는 것이 훨씬 더 좋은 해결책입니다.

여기 있습니다. 한 번 site_url() 사용하고, 지금부터 당신은 그냥 사용할 수에 : 당신이 자신을 복제 자신을 발견

<a href='controller/action'>My Link</a>와 일반적 및 전반적인 원칙으로

<img src='my_image.png'/>이 ... 그 중복을 제거 할 수있는 방법을 찾을 수 있습니다. 젖지 않게하십시오.

+0

이 링크를 먼저 읽고 결정하는 것이 좋습니다. http://stackoverflow.com/questions/1889076/is-it-recommended-to-use-the-base-html-tag – jmadsen

+0

@jmadsen :이 링크에 대해 감사드립니다. -이 잡았다는 것을 완전히 알지 못했습니다. 개인적인 경험으로부터 나는 수년간 ''을 사용 해왔고 절대로 부딪치지 않았습니다. 이것을 읽을 것입니다. 건배. –

+1

문제 없음 - 실제로 이것에 대해 알지 못했기 때문에 을 검색하여이 사실을 알게되었습니다. 그래서 나는 너에게서 무언가를 배웠다! 나는 좋은 생각이나 나쁜 생각을 말하지 않고, 결정할 때 더 많은 것들을보아야한다고 생각합니다. – jmadsen

0

모든 도움을 주셔서 감사합니다. 여러분.

태그의 잠재적 인 문제에 대해 읽은 후 필자는 내 접근 방식을 다시 생각했습니다. 저는 주 사이트 (dev.mysite.com과 같은 것)의 하위 도메인을 만들었습니다. 그렇게하면 CI의 config.php에서 기본 URL 만 변경되어 제작 버전에 표시되는 것과 똑같이 코드에서 작업 할 수 있습니다.

현재로서는 상대 경로가 필요한 모든 HTML 태그에 대해 PHP 전 처리기를 호출하는 것이 소모적이고 비효율적이며 태그를 사용하면 일관성없는 결과가 발생할 수 있으므로 가장 간단한 해결책으로 보입니다.