2017-03-01 4 views
0

asp.net 핵심 웹 응용 프로그램이 있습니다. Docker 컨테이너에서 실행하려고합니다.dotnet run은 bower 패키지를 사용하지 않습니다.

파워 쉘에서 프로젝트 파일 내부에, 나는 그 > dotnet restore> dotnet run을 실행할 수 있으며, 그것은 고정 표시기 컨테이너를 실행합니다 :

PS E:\Projects\...> dotnet run 
Project MyProject (.NETCoreApp,Version=v1.1) was previously compiled. Skipping compilation. 
Hosting environment: Production 
Content root path: E:\Projects\... 
Now listening on: http://localhost:5000 
Application started. Press Ctrl+C to shut down. 

유일한 문제는 내가 localhost:5000에 갈 때, 그것은 정자 패키지처럼 나타나는 것입니다 (Angular와 같은)는 설치되지 않습니다. 웹 페이지/컨트롤러가 모두 작동하는 동안 프런트 엔드 각도는 실행되지 않습니다.

404를 찾지 못하면 앵귤러 항목을 바인딩하지 않습니다.

Visual Studio (2015)에서 동일한 프로젝트를 실행하면 걱정없이 Angular를 포함/실행하므로 웹 사이트가 정상적으로 보이게됩니다. 소스를 보면 각도 파일이 포함 된 것을 볼 수 있습니다.

FROM microsoft/aspnetcore-build 
WORKDIR /app 
COPY published . 
ENTRYPOINT ["dotnet", "MyProject.dll"] 

하지만 나는 그것이 dotnet run 명령에 문제가 있다고 생각 :

내 DockerFile이다.

bower 패키지가 도커 컨테이너에 포함되어 실행되도록하려면 어떻게해야합니까? 1


편집 나는 행운과 함께 다음 다음 dotnet runbower installdotnet build을 수행했습니다.

그 후 나는 게시하기 위해 dotnet publish -o published을 게시하려고 시도한 다음 게시 된 디렉토리에서 dotnet MyProject.dll과 함께 실행했습니다.

내가 비주얼 스튜디오에서 프로젝트를 실행하면 페이지가 가지고있는 모든 스크립트를 포함 :

... 
<script src="/lib/jquery/dist/jquery.js"></script> 
<script src="/lib/jquery-validation/dist/jquery.validate.js"></script> 
<script src="/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script> 
<script src="/lib/bootstrap/dist/js/bootstrap.js"></script> 
<script src="/js/site.js?v=EWaMeWsJBYWmL2g_KkgXZQ5nPe-a3Ichp0LEgzXczKo"></script> 
<script src="/lib/angular/angular.js?v=IuVz88ct2cRJMIP8PVY9rcWTcd2eXzzvz3cdkmfoX2k"></script> 
... 

을하지만 그것은 다음 dotnet MyProject.dll을 모두 dotnet rundotnet publish를 사용하여 실행할 때 그 스크립트는 페이지 소스에 포함되지 않습니다.


고정

내가 그것을 생산 모드에서 실행 된 의미 dotnet run을 실행하는 것을 밝혀졌습니다.

페이지에 모든 스크립트가 포함되어있는보기 Views\Shared\Components\_EnvironmentFooter.cshtml에 파일이 있습니다. 유일한 문제는 스크립트가 개발 환경에 포함되었지만 프로덕션 환경에는 포함되어 있지 않다는 점이었습니다.

<environment names="Development"> 
    <script src="~/lib/jquery/dist/jquery.js"></script> 
    <script src="~/lib/jquery-validation/dist/jquery.validate.js"></script>  
    <script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script> 
    <script src="~/lib/bootstrap/dist/js/bootstrap.js"></script> 
    <script src="~/js/site.js" asp-append-version="true"></script> 
    <script src="~/lib/angular/angular.js" asp-append-version="true"></script> 
</environment> 
<environment names="Staging,Production"> 
    <script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-2.2.0.min.js" 
      asp-fallback-src="~/lib/jquery/dist/jquery.min.js" 
      asp-fallback-test="window.jQuery"> 
    </script> 
    <script src="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.6/bootstrap.min.js" 
      asp-fallback-src="~/lib/bootstrap/dist/js/bootstrap.min.js" 
      asp-fallback-test="window.jQuery && window.jQuery.fn && window.jQuery.fn.modal"> 
    </script> 
    <script src="~/js/site.min.js" asp-append-version="true"></script> 
</environment> 

제작/준비 환경에서 개발 한 스크립트가 포함되어 있습니다. 더 이상 문제가되지 않습니다.

답변

0

밝혀졌습니다. bower의 스크립트를 프로덕션 코드에 추가하지 않았습니다. 위의 편집을 참조하십시오.

1

dotnet publishscripts 요소를 기준으로 project.json을 기준으로 처리됩니다.dotnet publish을 실행하고 싶지 않다면 dotnet restoredotnet run 사이에서 bower install을 실행 해보십시오.

+0

안녕하세요, Tim, 귀하의 회신에 감사드립니다. 내가 그걸 줬어. (업데이트 된 질문보기) – Chris