2017-02-05 6 views
7

Laravel 5.4에서는 자산을 컴파일하고 자산 파이프 라인을 유지하기 위해 Mix가 도입되었습니다. 믹스는 공개 디렉토리 public로 기본 설정됩니다. 내 경우를 포함하여 많은 경우 내 공개 디렉터리를 다른 것으로 부릅니다. 제 경우에는 public_html입니다.Laravel Mix에서 밑줄이 포함 된 내용으로 공용 경로를 변경하려면 어떻게해야합니까?

자산을 컴파일 할 공용 디렉토리를 어떻게 변경합니까?

I가 webpack.min.js 내에서 경로를 변경 시도 :

mix.js('resources/assets/js/app.js', 'public_html/assets/js') 
    .sass('resources/assets/sass/app.scss', 'public_html/assets/css'); 

불행하게도이로 컴파일 : Laravel 5.3 및 엘릭서에서

- public 
|- _html 
|-- assets 
|--- css 
|--- js 
|- fonts 

이는 단순하게 같은 :

elixir.config.publicPath = 'public_html/assets'; 

믹스의 구성 파일을 확인했지만 여기에 아무것도 표시되지 않습니다.

참고 :이 패키지는 Laravel Mix이므로 npm 패키지이므로 index.php 파일의 수정 사항과는 아무 관련이 없습니다.

답변

12

setPublicPath이라는 문서화되지 않은 (내가 믿는) 방법이 있습니다. 그런 다음 출력에서 ​​공용 경로를 생략 할 수 있습니다. setPublicPath은 밑줄로 멋지게 재생됩니다. Laravel 5.4에서

mix.setPublicPath('public_html/'); 
mix.js('resources/assets/js/app.js', 'assets/js') 
    .sass('resources/assets/sass/app.scss', 'assets/css'); 
1

당신은 우리에게이 코드를 수행 할 수 있습니다

AppServiceProvider 의를 :

내가 이런 식으로 해결했습니다 Laravel 5.5
public function register() 
{ 

    $this->app->bind('path.public', function() { 
     return base_path() . DIRECTORY_SEPARATOR .'public_html'; 
    }); 

} 
+1

입니다 Laravel Mix와는 아무런 관련이 없습니다. 믹스는 NPM 패키지 (자바 스크립트)로, 내 질문에 언급했다. – Mike

0

,

mix.setPublicPath('public_html/') 
    .js('resources/assets/js/app.js', 'front/js') 
    .js('resources/assets/js/custom.js', 'front/js') 
    .sass('resources/assets/sass/app.scss', 'front/css') 
    .styles('resources/assets/css/custom.css', 'public_html/front/css/custom.css'); 
+1

허용되는 답변과 동일합니다. – Mike