2017-03-01 5 views
0

私はasp.netコアWebアプリケーションを持っています。私はDockerコンテナで実行しようとしています。dotnet runはbowerパッケージを使用しません。

のPowerShellから、プロジェクトファイル内に、私はその後> 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のような)はインストールされません。ウェブページ/コントローラはすべて動作しますが、フロントエンドのAngularは動作しません。

404が見つかりませんでしたが、Angularのものはバインドされません。

Visual Studio(2015)から同じプロジェクトを実行すると、心配なくAngularが含まれていて実行されていて、Webサイトが必要なように見えます。ソースを見ると、角度ファイルが含まれていることがわかります。

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

が、私はそれがdotnet runコマンドの問題だと思う:

私DockerFileです。

バウアーパッケージがドッカーコンテナ内に含まれ、確実に実行されるようにするにはどうすればよいですか? 1


編集は、私は運で、その後、その後dotnet runbower installdotnet buildをやってみました。

その後、私はdotnet publish -o publishedを発行しようとしましたが、公開ディレクトリからdotnet MyProject.dllで実行しても同じことが起こりました。

私は、Visual Studioからプロジェクトを実行すると、ページが持っているすべてのスクリプトが含ま:

... 
<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 publishによって処理されます(project.json)。dotnet publishを実行しない場合は、dotnet restoredotnet runの間でbower installを実行してみてください。

+0

こんにちはTimさん、ありがとうございました。私はそれを行った(更新された質問を参照) – Chris

関連する問題