我有一个简单的 github 操作部署:
build:
..
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up .NET Core
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: Build with dotnet
working-directory: ./${{ matrix.value }}
run: dotnet build --configuration Release
- name: dotnet publish
working-directory: ./${{ matrix.value }}
run: dotnet publish -c Release -o ${{env.DOTNET_ROOT}}/${{ matrix.value }}/${{ env.APP_NAME }}
- name: Upload artifact for deployment job
uses: actions/upload-artifact@v3
with:
name: .net-ui
path: ${{env.DOTNET_ROOT}}/${{ matrix.value }}/${{ env.APP_NAME }}
在下一份工作中,我将通过以下方式部署这些更改:
- name: Deploy to Azure Web App
id: deploy-to-webapp
uses: azure/webapps-deploy@v2
with:
app-name: ${{ env.AZURE_APP_NAME }}
package: ${{ env.AZURE_APP_PACKAGE_PATH }}
更新:我刚刚注意到
wwwroot
包含css和js文件的文件夹被复制到azure。我的服务器端文件放置在 C:\home\site\wwwroot
:
C:\home\site\wwwroot\wwwroot>ls # pay attention on doubled `wwwroot`
UI.styles.css
css
favicon.ico
js
lib
但是
lib
文件夹没有所有文件:
C:\home\site\wwwroot\wwwroot\lib>ls
bootstrap
jquery
jquery-validation
jquery-validation-unobtrusive
在本地,我还有带有
microsoft
依赖项的 signalr
文件夹(虽然依赖文件本身不在 git 下,但 microsoft
文件夹位于 git 下 => 所有这些行为都是默认的)。我想我需要以某种方式恢复它。
此外,一些本地显示的文件 (
/lib/jquery/dist/jquery.min.js
) 不会复制到 Azure 服务器上,即使它们所在的文件夹已被复制:
C:\home\site\wwwroot\wwwroot\lib\jquery>ls
LICENSE.txt # pay attention no "dist" folder
在浏览器中不可见并给出此错误:
GET https://azureapp.eastus-01.azurewebsites.net/lib/jquery/dist/jquery.min.js
[HTTP/1.1 404 Not Found 351ms
如何修复处理静态文件(css/js)?任何帮助将不胜感激。
检查
.csproj
文件。应包括以下行
<ItemGroup>
<Content Include="wwwroot\**\*.*" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>
GitHub Actions 工作流程使用正确的 dotnet 发布命令
- name: dotnet publish
working-directory: ./${{ matrix.value }}
run: dotnet publish -c Release -o ./publish